
    :root{
      --bg:#ffffff;
      --ink:#0f172a;      /* 濃いテキスト */
      --muted:#475569;    /* 補助テキスト */
      --line:#e2e8f0;     /* 罫線 */
      --panel:#f8fafc;    /* 薄い面 */
      --panel2:#f1f5f9;   /* 交互背景 */
      --accent:#0b6b80;   /* ロゴの青緑寄せ */
      --accent2:#2aa6d6;  /* 明るいブルー */
      --accent3:#064b5a;  /* 深いブルー */
      --grad: linear-gradient(90deg, var(--accent2) 0%, var(--accent) 55%, var(--accent3) 100%);
      --shadow: 0 10px 24px rgba(2, 6, 23, .08);
      --radius: 16px;
      --radius2: 12px;
      --max: 1120px;
      --pad: 20px;
      --danger: #b91c1c;  /* エラー色 */
      --warn:#b45309;     /* 警告色 */
    }

    *{ box-sizing:border-box; }
    html{ scroll-behavior:smooth; }
    @media (prefers-reduced-motion: reduce){
      html{ scroll-behavior:auto; }
    }


    html,body{ margin:0; padding:0; background:var(--bg); color:var(--ink); font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans JP", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif; }
    a{ color:inherit; text-decoration:none; }
    a:hover{ text-decoration:underline; }

    .wrap{ max-width: var(--max); margin:0 auto; padding: 0 var(--pad); }

    header{
      position: sticky;
      top: 0;
      z-index: 10;
      background: rgba(255,255,255,.92);
      backdrop-filter: blur(10px);
      border-bottom: 1px solid var(--line);
    }
    .nav{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap: 14px;
      padding: 14px 0;
    }
    .brand{
      display:flex;
      align-items:center;
      gap: 12px;
      min-width: 220px;
    }
    .brand img{
      height: 34px;
      width:auto;
      display:block;
    }
    .navlinks{
      display:flex;
      gap: 14px;
      flex-wrap: wrap;
      justify-content:flex-end;
      font-size: 14px;
      color: var(--muted);
    }
    .navlinks a{ color: var(--muted); padding:6px 8px; border-radius: 999px; }
    .navlinks a:hover{ background: var(--panel); text-decoration:none; }
    .cta.primary:hover{
      background: var(--grad);
      opacity:.7;
    }

    .cta{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      padding: 12px 14px;
      border-radius: 999px;
      border: 1px solid var(--line);
      background: #fff;
      font-weight: 800;
      font-size: 14px;
      white-space: nowrap;
      box-shadow: none;
    }
    .cta.primary{
      border: none;
      background: var(--grad);
      color:#fff;
    }
    .cta.ghost{
      background: var(--panel);
    }



    .inlineCta{
      text-align: center;
    }
    .inlineCta p{
      font-weight: bold;
    }


    .hero{
      padding: 50px 0 24px;
      background:
        radial-gradient(1100px 520px at 10% 0%, rgba(42,166,214,.14), transparent 65%),
        radial-gradient(900px 480px at 95% 10%, rgba(11,107,128,.12), transparent 60%),
        var(--bg);
    }
    .heroGrid{
      display:grid;
      grid-template-columns: 1fr;
      gap: 16px;
      align-items: start;
    }
    @media (max-width: 980px){
      .heroGrid{ grid-template-columns: 1fr; }
      .brand{
        min-width: auto;
        position:absolute;
        top:10px;
        left: 10px;
      }

      .brand img{
        width:100px;
        height:auto;
      
      }
      .navlinks{
        margin: 16px 0 0 0;
        display: block;
      }
      .cta.primary{
        margin:10px 0 0 0;
      }


    }

    .card{
      background: #fff;
      border:1px solid var(--line);
      border-radius: var(--radius);
      padding: 22px;
      box-shadow: var(--shadow);
      position:relative;
    }
    .card.soft{
      background: var(--panel);
      box-shadow: none;
    }


    .heroGrid .card {
      background-image:url("../images/nplus-contentops-logo2.png");
      background-repeat: no-repeat;
      background-position: right 20px bottom;
      background-size:440px auto;
      /*padding:22px 422px 22px 22px;*/
      padding:22px;
      display: grid;
      grid-template-columns: 1.1fr 0.9fr;
      gap: 16px;
      align-items: start;
    }
     @media (max-width: 980px){


      .heroGrid .card {
        padding:122px 22px 22px 22px;
        background-size: auto 100px;
        background-position:top center;
        grid-template-columns:1fr;
      }

     }


.beforeAfter {
  display: flex;
  align-items: stretch;
  gap: 8px;
  font-size: 13px;
}
.baBlock {
  flex: 1;
  padding: 16px;
  border-radius: 8px;
  border: 1px solid #e0e0e0;
}
.baBlock.before {
  background: #faf5f5;
  border-color: #e8d5d5;
}
.baBlock.after {
  background: #f0f6fb;
  border-color: #c5daf0;
}
.baLabel {
  font-weight: 900;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-bottom: 6px;
}
.baBlock.before .baLabel { color: #b55; }
.baBlock.after .baLabel { color: #2a7ab5; }
.baIcon {
  font-size: 24px;
  margin-bottom: 6px;
}
.baText {
  margin: 0 0 8px;
  line-height: 1.5;
}
.baList {
  margin: 0;
  padding-left: 16px;
  line-height: 1.7;
  color: var(--muted);
}
.baArrow {
  display: flex;
  align-items: center;
  font-size: 24px;
  font-weight: 900;
  color: var(--accent);
}

/* モバイル対応 */
@media (max-width: 768px) {
  .beforeAfter {
    flex-direction: column;
    width:100%;
  }
  .baArrow {
    justify-content: center;
    transform: rotate(90deg);
  }
}




    h1{
      margin:0 0 10px;
      font-size: 38px;
      line-height: 1.18;
      letter-spacing: -0.25px;
    }

    
    @media (max-width: 520px){ h1{ font-size: 30px; } }

    .lead{
      margin: 0 0 16px;
      color: var(--muted);
      font-size: 16px;
      line-height: 1.9;
    }

    .accentWord{
      background: var(--grad);
      -webkit-background-clip: text;
      background-clip: text;
      color: transparent;
      font-weight: 900;
    }
    .accentWord.small{
      font-size: 0.7em;
      display: inline-block;
      line-height: 1.4;
    }


    .heroActions{
      display:flex;
      gap: 10px;
      flex-wrap: wrap;
      margin-top: 12px;
    }
    
    /* Hero内のロゴ（トップに配置） */
  .heroBrand{
    display:flex;
    align-items:center;
    gap: 12px;
    margin: 0 0 10px;

  }

  .heroBrand img{
    height: auto;   /* ロゴの見え方に応じて 40〜56px で調整 */
    width: 100%;
    display:block;
  }

  /* ロゴ直下の短い説明（任意） */
  .heroTagline{
    margin: 0 0 14px;
    font-size: 13px;
    font-weight: 800;
    color: var(--muted);
    letter-spacing: .02em;

  }


    .pill{
      display:inline-flex;
      align-items:center;
      gap: 8px;
      font-size: 12px;
      padding: 6px 10px;
      border-radius: 999px;
      border: 1px solid var(--line);
      background: #fff;
      color: var(--muted);
    }
    .pill strong{ color: var(--ink); }

    .dialogue{
      font-weight: bold;
      border: 1px solid var(--line);
      border-radius: 4px;
      padding: 6px;
      margin: 10px 0 0 0;
    }


    section{
      padding: 28px 0;
    }
    section.alt{
      background: var(--panel2);
      border-top: 1px solid var(--line);
      border-bottom: 1px solid var(--line);
    }

    .sectionTitle{
      font-size: 22px;
      margin: 0 0 10px;
      letter-spacing: -0.2px;
    }
    .sectionLead{
      margin: 0 0 14px;
      color: var(--muted);
      line-height: 1.9;
    }

    .grid3{
      display:grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 12px;
    }
    @media (max-width: 980px){
      .grid3{ grid-template-columns: 1fr; }
    }

    .list{
      margin: 12px 0 0;
      padding-left: 18px;
      color: var(--muted);
      line-height: 1.9;
    }

    .twoCol{
      display:grid;
      grid-template-columns: 1fr 1fr;
      gap: 12px;

    }
    @media (max-width: 980px){
      .twoCol{ grid-template-columns: 1fr; }
    }

    /* Diagram */
    figure{
      margin: 0;
    }
    .diagramCard{
      background:#fff;
      border:1px solid var(--line);
      border-radius: var(--radius);
      padding: 16px;
      box-shadow: var(--shadow);
    }
    .diagramTitle{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap: 10px;
      margin-bottom: 10px;
    }
    .diagramTitle h3{
      margin:0;
      font-size: 16px;
      letter-spacing: -0.1px;
    }
    .diagramTitle .hint{
      font-size: 12px;
      color: var(--muted);
      white-space: nowrap;
    }
    .diagram{
      width: 100%;
      height: auto;
      display:block;
      border-radius: 12px;
      border: 1px solid var(--line);
      background: #fff;
    }
    figcaption{
      margin-top: 10px;
      color: var(--muted);
      font-size: 13px;
      line-height: 1.8;
    }
    .openLink{
      font-size: 12px;
      color: var(--accent);
      border: 1px solid var(--line);
      background: var(--panel);
      padding: 6px 10px;
      border-radius: 999px;
    }
    .openLink:hover{ text-decoration:none; filter: brightness(.98); }





    /* Deliverables */
    .deliverGrid{
      display:grid;
      grid-template-columns: 1fr 1fr;
      gap: 12px;

    }
    @media (max-width: 980px){ .deliverGrid{ grid-template-columns: 1fr; } }
    .deliverBlock{
      border:1px solid var(--line);
      border-radius: var(--radius);
      padding: 18px;
      background:#fff;
      box-shadow: var(--shadow);
    }
    .deliverBlock h3{
      margin: 0 0 6px;
      font-size: 16px;
      font-weight: 900;
    }
    .deliverMeta{
      margin: 0 0 10px;
      color: var(--muted);
      font-size: 12px;
      line-height: 1.75;
    }

    /* Pricing */
    .pricing{
      display:grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 12px;
    }
    @media (max-width: 980px){
      .pricing{ grid-template-columns: 1fr; }
    }
    .priceCard{
      border-radius: var(--radius);
      border: 1px solid var(--line);
      background: #fff;
      padding: 18px;
      box-shadow: var(--shadow);
      position:relative;
    }

    .priceTop{
      display:flex;
      align-items:flex-start;
      justify-content:space-between;
      gap: 10px;
      margin-bottom: 8px;
    }
    .plan{
      font-size: 16px;
      font-weight: 900;
      margin: 40px auto 0 auto;
      text-align: center;
      width: 100%;
    }
    .tag{
      font-size:12px;
      border:1px solid var(--line);
      padding: 6px 10px;
      border-radius: 999px;
      color: var(--muted);
      background: var(--panel);
      white-space: nowrap;
      position:absolute;
      top:10px;
      right:10px;
    }
    .price{
      font-size: 22px;
      font-weight: 900;
      margin: 8px 0 8px;
      letter-spacing: -0.4px;
      font-feature-settings: "palt";
    }
    .sub{
      font-size: 12px;
      color: var(--muted);
      line-height: 1.8;
      margin: 0 0 10px;
    }
    .divider{ height:1px; background: var(--line); margin: 12px 0; }


    .small{
      font-size: 12px;
      color: var(--muted);
      line-height: 1.8;
    }
    .recommended{
      position:absolute;
      top: 14px;
      left: 14px;
      background: var(--grad);
      color:#fff;
      font-size: 12px;
      font-weight: 900;
      padding: 6px 10px;
      border-radius: 999px;
      box-shadow: 0 12px 26px rgba(2,6,23,.14);
    }

  .tablewrap{
    display: block;
    overflow: auto;
  }
.simTable {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;

}
.simTable th,
.simTable td {
  padding: 10px 12px;
  border-bottom: 1px solid #e0e0e0;
  text-align: center;
  vertical-align: top;
}
.simTable th {
  background: var(--bg-alt, #f5f7fa);
  font-weight: 700;
}
.simTable td:first-child,
.simTable th:first-child {
  text-align: left;
  font-weight: 600;
}
.simTable tbody tr:last-child {
  background: var(--bg-alt, #f5f7fa);
}


    .mediaLogoGrid{

    }
    .mediaLogoGrid ul{
      list-style: none;
      padding: 0;
      margin:0;
      text-align: left;
    }
    .mediaLogoGrid li{
      padding:5px;
      display: inline-block;
      vertical-align: top;
    }


    /* FAQ */
    details{
      border:1px solid var(--line);
      border-radius: var(--radius2);
      background: #fff;
      padding: 12px 12px;
      box-shadow: none;
    }
    details + details{ margin-top: 10px; }
    summary{ cursor:pointer; font-weight: 800; }
    summary::marker{ color: var(--muted); }

    /* Form */
    form{ display:grid; gap: 10px; }
    label{ font-size: 12px; color: var(--muted); }
    input, textarea, select{
      width: 100%;
      padding: 12px;
      border-radius: 12px;
      border:1px solid var(--line);
      background: #fff;
      color: var(--ink);
      outline: none;
    }
    textarea{ min-height: 120px; resize: vertical; }
    .formRow{
      display:grid;
      grid-template-columns: 1fr 1fr;
      gap: 10px;
    }
    @media (max-width: 760px){
      .formRow{ grid-template-columns: 1fr; }
    }

    #stagetext{
  display: none;
  margin: 8px 0;
  padding: 10px;
  background: #f0f6fb;
  border-left: 3px solid var(--accent);
  border-radius: 4px;
  font-size: 13px;
  line-height: 1.7;
    }


    .consent{
      display:flex;
      gap: 10px;
      align-items:flex-start;
      color: var(--muted);
      font-size: 12px;
      line-height: 1.7;
    }
    .consent input{ width:auto; margin-top: 3px; }

    footer{
      border-top: 1px solid var(--line);
      padding: 22px 0 40px;
      color: var(--muted);
      font-size: 12px;
      line-height: 1.9;
      background: #fff;
    }
    .footerGrid{
      display:grid;
      grid-template-columns: 1fr 1fr;
      gap: 12px;
    }
    @media (max-width: 980px){
      .footerGrid{ grid-template-columns: 1fr; }
    }


    .error{
        margin:0;
        color:var(--danger);
        font-size:12px;
        min-height: 1.1em;
    }
    #formStatus{
      font-size: 120%;
      color: var(--warn);
    }
