/* ===== LP CSS (Peraichi) ===== */
.lp-root{
  --lp-max: 980px;
  --lp-pad: 20px;

  --lp-text: #111;
  --lp-muted: #555;
  --lp-border: rgba(0,0,0,.10);
  --lp-bg: #fff;

  --lp-radius: 18px;
  --lp-shadow: 0 10px 26px rgba(0,0,0,.07);

  --lp-sec-sm: 26px;
  --lp-sec-md: 44px;
  --lp-sec-lg: 68px;

  --lp-accent: #0f766e;
  --lp-accent2: #2563eb;

  font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Noto Sans JP", "Yu Gothic", "Meiryo", sans-serif;
  color: var(--lp-text);
}

.lp-root *{ box-sizing: border-box; }
.lp-root img{ max-width: 100%; height: auto; }
.lp-root a{ color: inherit; text-decoration: none; }

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

.lp-root .lp-sec{ padding: var(--lp-sec-md) 0; }
.lp-root .lp-sec--sm{ padding: var(--lp-sec-sm) 0; }
.lp-root .lp-sec--lg{ padding: var(--lp-sec-lg) 0; }

.lp-root .lp-badge{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 7px 10px;
  border-radius: 999px;
  border: 1px solid var(--lp-border);
  background: rgba(255,255,255,.7);
  font-size: 13px;
  color: var(--lp-muted);
}

.lp-root .lp-h1{
  font-size: clamp(26px, 4.2vw, 42px);
  line-height: 1.25;
  margin: 0 0 14px;
  font-weight: 800;
}
.lp-root .lp-h2{
  font-size: clamp(20px, 3.2vw, 28px);
  line-height: 1.35;
  margin: 0 0 14px;
  font-weight: 800;
}

.lp-root .lp-lead{
  font-size: 16px;
  line-height: 1.9;
  color: var(--lp-muted);
  margin: 0 0 18px;
}
.lp-root .lp-p{
  font-size: 16px;
  line-height: 1.9;
  margin: 0 0 14px;
  color: var(--lp-text);
}

.lp-root .lp-em{
  font-weight: 800;
  background: linear-gradient(transparent 62%, rgba(15,118,110,.18) 62%);
  padding: 0 2px;
}

.lp-root .lp-card{
  background: var(--lp-bg);
  border: 1px solid var(--lp-border);
  border-radius: var(--lp-radius);
  box-shadow: var(--lp-shadow);
  padding: 18px;
}

.lp-root .lp-grid{ display: grid; gap: 14px; }
@media (min-width: 768px){
  .lp-root .lp-grid--2{ grid-template-columns: 1fr 1fr; }
  .lp-root .lp-grid--3{ grid-template-columns: 1fr 1fr 1fr; }
}

.lp-root .lp-ul{ margin: 0; padding-left: 1.1em; }
.lp-root .lp-ul li{ margin: 8px 0; line-height: 1.8; }

.lp-root .lp-hero{
  background: linear-gradient(135deg, rgba(15,118,110,.10), rgba(37,99,235,.08));
  border-bottom: 1px solid var(--lp-border);
}

.lp-root .lp-btns{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 14px;
}

.lp-root .lp-btn{
  display: inline-block;
  padding: 14px 16px;
  border-radius: 14px;
  font-weight: 800;
  text-align: center;
  border: 1px solid var(--lp-border);
  background: #fff;
  min-width: 240px;
}

.lp-root .lp-btn--primary{
  background: var(--lp-accent);
  color: #fff;
  border-color: transparent;
}
.lp-root .lp-btn--secondary{
  background: var(--lp-accent2);
  color: #fff;
  border-color: transparent;
}

.lp-root .lp-note{
  font-size: 12px;
  color: var(--lp-muted);
  line-height: 1.7;
  margin-top: 10px;
}

.lp-root .lp-divider{
  height: 1px;
  background: var(--lp-border);
  margin: 12px 0;
}

.lp-root .lp-table{
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  overflow: hidden;
  border: 1px solid var(--lp-border);
  border-radius: var(--lp-radius);
}
.lp-root .lp-table th, .lp-root .lp-table td{
  padding: 12px 12px;
  border-bottom: 1px solid var(--lp-border);
  vertical-align: top;
  font-size: 14px;
  line-height: 1.7;
}
.lp-root .lp-table th{
  text-align: left;
  background: rgba(0,0,0,.03);
  font-weight: 800;
}
.lp-root .lp-table tr:last-child td{ border-bottom: none; }

.lp-root .lp-mt0{ margin-top: 0 !important; }
.lp-root .lp-mb0{ margin-bottom: 0 !important; }
.lp-root .lp-center{ text-align: center; }
