html {scroll-behavior: smooth;}
body {margin: 0;padding: 0;}

.pis-body,.pis-body * {box-sizing: border-box;font-family: "Noto Sans JP", sans-serif !important;}
.pis-body {color: #0f172a;background: #ffffff;line-height: 1.8;overflow-x: hidden;}
.pis-body img {max-width: 100%;height: auto;display: block;}
.pis-body a {text-decoration: none;}
.pis-container {width: min(1120px, calc(100% - 40px));margin: 0 auto;}
.pis-container--narrow {width: min(900px, calc(100% - 40px));margin: 0 auto;}
.pc-only {display: inline;}

/* common */
.pis-section {padding: 92px 0;}
.pis-section--dark {background: linear-gradient(180deg, #06111f 0%, #071a34 100%);color: #ffffff;}
.pis-section--bluegray {background: #eef5fc;}
.center {text-align: center;}
.pis-label,.pis-eyebrow {display: inline-block;margin: 0 0 12px;color: #2563eb;font-size: 12px;font-weight: 900;letter-spacing: 0.14em;}
.pis-label--light {color: #93c5fd;}
.pis-section__heading {margin-bottom: 44px;}
.pis-section__heading h2,.pis-contact h2 {margin: 0;color: #0f172a;font-size: clamp(25px, 3.3vw, 38px);line-height: 1.35;letter-spacing: -0.03em;}
.pis-section__heading .is-light {color: #ffffff;}
.pis-section__heading p(.pis-label) {max-width: 780px;margin: 16px auto 0;color: #475569;font-size: 15px;}
.pis-dark-lead {max-width: 780px;margin: 16px auto 0;color: rgba(255,255,255,0.82);}

/* buttons */
.pis-btn {display: inline-flex;align-items: center;justify-content: center;min-height: 50px;padding: 0 28px;border-radius: 999px;font-size: 14px;font-weight: 900;line-height: 1.4;transition: 0.25s ease;}
.pis-btn {transform: translateY(-2px);opacity: 0.96;}
.pis-btn--primary {background: #1d4ed8;color: #ffffff !important;box-shadow: 0 12px 24px rgba(37, 99, 235, 0.22);}
.pis-btn--ghost {background: #ffffff;border: 1px solid #cbd5e1;color: #0f172a !important;}
.pis-btn--white {background: #ffffff;color: #1d4ed8 !important;}

/* hero */
.pis-hero {padding: 92px 0 108px;background:radial-gradient(circle at 82% 24%, rgba(37,99,235,0.14), transparent 34%),linear-gradient(180deg, #ffffff 0%, #f7fbff 100%);}
.pis-hero__grid {display: grid;grid-template-columns: 0.95fr 1.05fr;gap: 64px;align-items: center;}
.pis-hero h1 {margin: 0 0 22px;color: #07142e;font-size: clamp(36px, 4.8vw, 58px);line-height: 1.18;letter-spacing: -0.05em;}
.pis-hero__lead {max-width: 590px;margin: 0 0 32px;color: #334155;font-size: 16px;}
.pis-hero__buttons {display: flex;flex-wrap: wrap;gap: 14px;}
.pis-hero__visual img {width: 100%;border-radius: 24px;filter: drop-shadow(0 28px 46px rgba(15, 23, 42, 0.14));}

/* problem */
.pis-problem__grid {display: grid;grid-template-columns: repeat(4, 1fr);gap: 18px;}
.pis-problem__box {min-height: 118px;display: flex;align-items: center;background: #ffffff;border: 1px solid #e2e8f0;border-radius: 16px;padding: 22px;color: #0f172a;font-weight: 800;text-align: left;box-shadow: 0 8px 20px rgba(15, 23, 42, 0.04);}
.pis-problem__box::before {content: "!";display: inline-flex;width: 24px;height: 24px;margin-right: 10px;align-items: center;justify-content: center;flex-shrink: 0;border-radius: 999px;background: #dbeafe;color: #1d4ed8;font-weight: 900;}
.pis-message-box {max-width: 820px;margin: 34px auto 0;padding: 28px;border-radius: 18px;background: linear-gradient(90deg, #0ea5e9, #2563eb);color: #ffffff;text-align: center;}
.pis-message-box p {margin: 0;font-size: 20px;font-weight: 900;}

/* origin / protocol */
.pis-origin-card {max-width: 780px;margin: 36px auto 0;padding: 30px 34px;border: 1px solid rgba(255,255,255,0.16);border-radius: 20px;background: rgba(255,255,255,0.08);text-align: center;}
.pis-origin-card__label {margin: 0 0 8px;color: #93c5fd;font-size: 12px;font-weight: 900;letter-spacing: 0.14em;}
.pis-origin-card h3 {margin: 0 0 12px;color: #ffffff;font-size: 24px;}
.pis-origin-card p {margin: 0;color: rgba(255,255,255,0.86);}
.pis-origin-card strong {color: #ffffff;}
.pis-system-grid {display: grid;grid-template-columns: repeat(3, 1fr);gap: 22px;margin-top: 38px;}
.pis-system-card {padding: 28px;border: 1px solid rgba(255,255,255,0.14);border-radius: 18px;background: linear-gradient(135deg, #12337d, #2563eb);color: #ffffff;box-shadow: 0 18px 34px rgba(0,0,0,0.18);}
.pis-system-card span {display: inline-flex;margin-bottom: 14px;color: #93c5fd;font-size: 13px;font-weight: 900;}
.pis-system-card h3 {margin: 0 0 10px;font-size: 24px;}
.pis-system-card p {margin: 0;color: rgba(255,255,255,0.86);}

/* solution */
.pis-solution-grid {display: grid;grid-template-columns: repeat(3, 1fr);gap: 22px;}
.pis-solution-card {display: flex;flex-direction: column;min-height: 100%;padding: 28px;border: 1px solid #dbeafe;border-radius: 20px;background: #ffffff;box-shadow: 0 10px 28px rgba(15, 23, 42, 0.06);}
.pis-solution-card__number {margin-bottom: 16px;color: #2563eb;font-size: 13px;font-weight: 900;letter-spacing: 0.14em;}
.pis-solution-card h3 {min-height: 68px;margin: 0 0 14px;color: #0f172a;font-size: 21px;line-height: 1.45;}
.pis-solution-card p {min-height: 118px;margin: 0 0 16px;color: #334155;font-size: 14px;}
.pis-solution-card ul {margin: auto 0 0;padding-left: 18px;color: #334155;font-size: 14px;}
.pis-solution-card li {margin-bottom: 6px;}

/* before after */
.pis-before-after {max-width: 980px;margin: 0 auto;display: grid;grid-template-columns: 1fr auto 1fr;gap: 24px;align-items: center;}
.pis-before-after__card {padding: 30px;border-radius: 20px;background: #ffffff;border: 1px solid #e2e8f0;box-shadow: 0 10px 24px rgba(15, 23, 42, 0.05);}
.pis-before-after__card.is-after {border-color: #2563eb;box-shadow: 0 16px 34px rgba(37, 99, 235, 0.14);}
.pis-before-after__label {margin: 0 0 8px;color: #2563eb;font-size: 12px;font-weight: 900;letter-spacing: 0.14em;}
.pis-before-after__card h3 {margin: 0 0 16px;font-size: 22px;}
.pis-before-after__card ul {margin: 0;padding-left: 18px;}
.pis-before-after__arrow {color: #2563eb;font-size: 32px;font-weight: 900;}

/* flow */
.pis-flow-grid {display: grid;grid-template-columns: repeat(4, 1fr);gap: 18px;}
.pis-flow-card {padding: 24px;border: 1px solid #e2e8f0;border-radius: 18px;background: #ffffff;box-shadow: 0 8px 20px rgba(15, 23, 42, 0.035);}
.pis-flow-card span {display: inline-flex;width: 38px;height: 38px;margin-bottom: 14px;align-items: center;justify-content: center;border-radius: 999px;background: #dbeafe;color: #1d4ed8;font-weight: 900;}
.pis-flow-card h3 {margin: 0 0 10px;font-size: 18px;}
.pis-flow-card p {margin: 0;color: #475569;font-size: 14px;}

/* offer */
.pis-offer {background: linear-gradient(90deg, #0ea5e9, #2563eb);color: #ffffff;}
.pis-offer__grid {display: grid;grid-template-columns: 1fr 0.9fr;gap: 42px;align-items: center;}
.pis-offer h2 {margin: 0 0 18px;color: #ffffff;font-size: clamp(26px, 3.4vw, 40px);line-height: 1.35;}
.pis-offer p {margin: 0;color: rgba(255,255,255,0.9);}
.pis-offer__card {padding: 30px;border-radius: 20px;background: #ffffff;color: #0f172a;box-shadow: 0 20px 44px rgba(0,0,0,0.14);}
.pis-offer__card h3 {margin: 0 0 16px;font-size: 22px;}
.pis-offer__card ul {margin: 0 0 24px;padding-left: 18px;}
.pis-offer__card li {margin-bottom: 8px;}

/* price */
.pis-price-grid {display: grid;grid-template-columns: repeat(3, 1fr);gap: 24px;}
.pis-price-card {padding: 30px 24px;border: 1px solid #dbe3ef;border-radius: 20px;background: #ffffff;box-shadow: 0 10px 24px rgba(15, 23, 42, 0.05);}
.pis-price-card.is-featured {border-color: #2563eb;box-shadow: 0 16px 34px rgba(37, 99, 235, 0.16);transform: translateY(-8px);}
.pis-price-card__tag {margin: 0 0 12px;color: #2563eb;font-size: 12px;font-weight: 900;letter-spacing: 0.12em;}
.pis-price-card h3 {margin: 0 0 10px;font-size: 21px;}
.pis-price {margin-bottom: 18px;color: #0f172a;font-size: 32px;font-weight: 900;letter-spacing: -0.03em;}
.pis-price span {margin-left: 6px;font-size: 16px;font-weight: 700;}
.pis-price-card ul {margin: 0 0 24px;padding-left: 18px;}

/* faq */
.pis-faq {display: grid;grid-template-columns: repeat(2, 1fr);gap: 14px 18px;}
.pis-faq details {border: 1px solid #e2e8f0;border-radius: 14px;background: #ffffff;padding: 0 18px;}
.pis-faq summary {min-height: 72px;display: flex;align-items: center;cursor: pointer;color: #0f172a;font-weight: 900;list-style: none;position: relative;padding-right: 28px;}
.pis-faq summary::-webkit-details-marker {display: none;}
.pis-faq summary::after {content: "+";position: absolute;right: 0;color: #2563eb;font-size: 22px;font-weight: 900;}
.pis-faq details[open] summary::after {content: "−";}
.pis-faq details p {margin: 0;padding: 0 0 18px;color: #475569;}

/* contact（オレンジ → ブランドブルーに変更済み） */
.pis-contact {padding: 92px 0;background: linear-gradient(90deg, #1d4ed8, #2563eb);position: relative;overflow: hidden;}
.pis-contact::before {content: "";position: absolute;inset: auto -120px -80px auto;width: 420px;height: 420px;background: rgba(255,255,255,0.08);transform: skewX(-22deg);}
.pis-contact__grid {display: grid;grid-template-columns: 0.9fr 1.1fr;gap: 50px;align-items: center;position: relative;z-index: 1;}
.pis-contact__lead {color: #ffffff;}
.pis-contact__eyebrow {margin: 0 0 10px;font-size: 14px;font-weight: 900;letter-spacing: 0.12em;}
.pis-contact__lead h2 {color: #ffffff;}
.pis-contact__lead p {max-width: 460px;margin: 18px 0 0;color: rgba(255,255,255,0.92);}
.pis-form-box {max-width: 560px;margin-left: auto;padding: 28px;border-radius: 20px;background: #ffffff;box-shadow: 0 20px 44px rgba(0,0,0,0.14);}
.pis-form-row {display: grid;gap: 8px;margin-bottom: 15px;}
.pis-form-row label {color: #0f172a;font-size: 13px;font-weight: 900;}
.pis-form-row label span {margin-left: 6px;color: #ef4444;font-size: 12px;}
.pis-form-row input,.pis-form-row textarea {width: 100%;border: 1px solid #dbe3ef;border-radius: 12px;padding: 12px 14px;background: #ffffff;font-size: 14px;font-family: inherit;}
.pis-form-row textarea {min-height: 120px;resize: vertical;}
.pis-radio-group {display: flex;flex-wrap: wrap;gap: 14px;}
.pis-radio-group label,.pis-checkbox-row label {display: inline-flex !important;align-items: center !important;gap: 8px !important;font-weight: 600 !important;}
.pis-checkbox-row input[type="checkbox"] {width: 16px;height: 16px;margin: 0;flex-shrink: 0;}
.pis-submit-btn {width: 100%;min-height: 50px;border: none;border-radius: 999px;background: #111827;color: #ffffff;font-weight: 900;cursor: pointer;}

/* responsive */
@media (max-width: 1024px) {
  .pis-hero__grid,.pis-offer__grid,.pis-contact__grid {grid-template-columns: 1fr;}
  .pis-problem__grid,.pis-system-grid,.pis-solution-grid,.pis-flow-grid,.pis-price-grid {grid-template-columns: repeat(2, 1fr);}
  .pis-before-after {grid-template-columns: 1fr;}
  .pis-before-after__arrow {text-align: center;}
  .pis-form-box {margin-left: 0;}
  .pis-price-card.is-featured {transform: none;}
  .pis-header__inner {width: min(100%, calc(100% - 32px));}
  .pis-footer__inner,.pis-footer__bottom {width: min(100%, calc(100% - 32px));}
  .pis-footer__inner {grid-template-columns: 1fr;gap: 34px;}
}

@media (max-width: 767px) {
  .pis-container,.pis-container--narrow {width: calc(100% - 32px);}
  .pc-only {display: none;}
  .pis-section,.pis-contact {padding: 58px 0;}
  .pis-hero {padding: 48px 0 58px;}
  .pis-hero h1 {font-size: clamp(30px, 8vw, 38px);}
  .pis-hero__buttons {flex-direction: column;}
  .pis-btn {width: 100%;}
  .pis-problem__grid,.pis-system-grid,.pis-solution-grid,.pis-flow-grid,.pis-price-grid,.pis-faq {grid-template-columns: 1fr;}
  .pis-problem__box {min-height: auto;}
  .pis-origin-card {text-align: left;padding: 24px;}
  .pis-solution-card h3,.pis-solution-card p {min-height: auto;}
  .pis-message-box p {font-size: 18px;}
  .pis-faq summary {min-height: auto;padding: 18px 28px 18px 0;align-items: flex-start;}
  .pis-form-box {max-width: 100%;padding: 22px;}
  .pis-header__inner {width: calc(100% - 32px);min-height: 66px;}
  .pis-menu-toggle {display: inline-flex;}
  .pis-header__nav {display: none;position: absolute;top: calc(100% + 8px);left: 0;right: 0;background: #ffffff;border: 1px solid #e2e8f0;border-radius: 16px;padding: 14px;flex-direction: column;align-items: stretch;gap: 10px;box-shadow: 0 16px 30px rgba(15, 23, 42, 0.1);}
  .pis-header__nav.is-open {display: flex;}
  .pis-header__nav a {width: 100%;padding: 10px 12px;}
  .pis-header__cta {justify-content: center;padding: 0 16px !important;}
  .pis-footer__inner,.pis-footer__bottom {width: calc(100% - 32px);}
  .pis-footer {padding: 44px 0 24px;}
  .pis-footer__navgroup {grid-template-columns: 1fr;gap: 24px;}
}

/* ========================= Header ========================= */
.pis-header,.pis-header * {box-sizing: border-box;font-family: "Noto Sans JP", sans-serif !important;}
.pis-header {position: sticky;top: 0;z-index: 9999;width: 100%;background: rgba(255, 255, 255, 0.96);border-bottom: 1px solid #e5e7eb;backdrop-filter: blur(10px);}
.pis-header__inner {width: min(1120px, calc(100% - 40px));min-height: 72px;margin: 0 auto;display: flex;align-items: center;justify-content: space-between;gap: 24px;position: relative;}
.pis-header__logo img {height: 32px;width: auto;}
.pis-header__nav {display: flex;align-items: center;justify-content: flex-end;gap: 24px;flex: 1;}
.pis-header__nav a {color: #0f172a;font-size: 14px;font-weight: 800;white-space: nowrap;}
.pis-header__nav a {color: #2563eb;}
.pis-header__cta {display: inline-flex;align-items: center;justify-content: center;min-height: 42px;padding: 0 18px;border-radius: 999px;background: #2563eb;color: #ffffff !important;box-shadow: 0 10px 20px rgba(37, 99, 235, 0.18);}
.pis-menu-toggle {display: none;width: 42px;height: 42px;border: none;background: transparent;cursor: pointer;align-items: center;justify-content: center;flex-direction: column;gap: 5px;padding: 0;}
.pis-menu-toggle span {display: block;width: 24px;height: 2px;border-radius: 999px;background: #0f172a;}

/* ロゴ（PIS共通スタイル / サイズ・余白調整済み） */
.pis-header__logo {
  display: inline-flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 14px !important;
  color: #0f172a !important;
  line-height: 1.2 !important;
}
.pis-header__logo-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  flex-shrink: 0;
  border-radius: 999px;
  border: 1.5px solid #bfdbfe;
  background: #eff6ff;
}
.pis-header__logo-icon svg {
  width: 22px;
  height: 22px;
}
.pis-header__logo-text {
  display: inline-flex;
  flex-direction: column;
  gap: 5px;
}
.pis-header__logo-title {
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
}
.pis-header__logo-pis {
  font-size: 22px !important;
  font-weight: 900 !important;
  letter-spacing: 0.02em !important;
  color: #0f172a !important;
}
.pis-header__logo-service {
  font-size: 22px !important;
  font-weight: 900 !important;
  letter-spacing: 0.02em !important;
  color: #2563eb !important;
}
.pis-header__logo-sub {
  font-size: 10px !important;
  font-weight: 500 !important;
  letter-spacing: 0.12em !important;
  color: #94a3b8 !important;
  white-space: nowrap !important;
  margin-top: 1px;
}
.pis-header__logo-sub strong {
  font-weight: 900 !important;
  color: #334155 !important;
}

/* ========================= Footer ========================= */
.pis-footer,.pis-footer * {box-sizing: border-box;font-family: "Noto Sans JP", sans-serif !important;}
.pis-footer {background: linear-gradient(180deg, #0b2159 0%, #1d4ed8 100%);color: #dbeafe;padding: 56px 0 28px;}
.pis-footer__inner {width: min(1120px, calc(100% - 40px));margin: 0 auto;display: grid;grid-template-columns: 1fr 1.2fr;gap: 48px;}
.pis-footer__brand h3 {margin: 0 0 14px;color: #ffffff;font-size: 24px;line-height: 1.6;font-weight: 900;letter-spacing: -0.02em;}
.pis-footer__brand p {margin: 16px 0 20px;max-width: 420px;color: rgba(219, 234, 254, 0.85);font-size: 14px;line-height: 1.9;}
.pis-footer__brand small {display: block;color: rgba(219, 234, 254, 0.68);font-size: 12px;}
.pis-footer__navgroup {display: grid;grid-template-columns: repeat(2, 1fr);gap: 28px;}
.pis-footer__navgroup h4 {margin: 0 0 14px;color: #ffffff;font-size: 15px;font-weight: 800;letter-spacing: 0.05em;}
.pis-footer__navgroup a {display: block;margin-bottom: 10px;color: #ffffff;font-size: 14px;text-decoration: none;transition: 0.2s ease;}
.pis-footer__navgroup a:hover {color: #93c5fd !important;transform: translateX(4px);}
.pis-footer__bottom {width: min(1120px, calc(100% - 40px));margin: 34px auto 0;padding-top: 22px;border-top: 1px solid rgba(255,255,255,0.12);color: rgba(219, 234, 254, 0.62);font-size: 12px;}

/* PAYMENT_FORM_CSS */
/* ------------------------------------- PCデザイン可変部分 ------------------------------------- */
span.form_required_ec{
  background: #7E0F09;
  color: #ffffff;
}
.landing_form_label_ec {
  background: #203594;
  color: #ffffff;
  font-size: 18px;
}
table.landing_form_ec {
  border-top: 1px solid #d0dcec;
  border-right: 1px solid #d0dcec;
  background: #FFF;
  border-bottom: 1px solid #999;
}
.landing_form_ec th {
  background-color: #e1edfd;
  border-bottom: 1px solid #d0dcec;
  border-left: 1px solid #d0dcec;
}
.landing_form_ec td {
  border-bottom: 1px solid #d0dcec;
  border-left: 1px solid #d0dcec;
  background-color: #ffffff;
}
.submit_bottom_ec {
  border: 0px;
  width: 400px;
  height: 150px;
  background-size: 394px auto;
  background-repeat: no-repeat;
  cursor: pointer;
}

/* ------------------------------------- スマートフォンデザイン可変部分 ------------------------------------- */
span.form_required_sp_ec{
  background: #7E0F09;
  color: #ffffff;
}
.landing_form_label_sp_ec {
  background: #203594;
  color: #ffffff;
  font-size: 18px;
}
.form_box_label_sp_ec {
  background: #cadefc;
  border-bottom: 1px solid #C3C3C3;
  border-top: 1px solid #C3C3C3;
}
.submit_bottom_sp_ec {
  border: 0px;
  width: 100%;
  height: 150px;
  background-size: 100% auto;
  background-repeat: no-repeat;
  cursor: pointer;
}