* { margin: 0; padding: 0; box-sizing: border-box; }

body {
  font-family: 'Noto Sans JP', sans-serif;
  color: #1A202C;
  background: #FAF8F3;
  font-size: 15px;
  line-height: 1.8;
}

.container {
  max-width: 720px;
  margin: 0 auto;
  padding: 0 24px;
}

/* セクション共通 */
section {
  padding: 40px 0;
}

/* ゾーン2：信頼の核心（内部の余白を詰めて一体感） */
.trust-zone section {
  padding: 40px 0;
}

/* ゾーン境界の区切り線 */
.zone-divider {
  border: none;
  border-top: 1px solid #E2E8F0;
  margin: 0;
}

.section-label {
  font-size: 13px;
  font-weight: 600;
  color: #718096;
  letter-spacing: 2px;
  margin-bottom: 24px;
}

/* ヘッダー */
.hero {
  text-align: center;
  padding-top: 32px;
}

h1 {
  font-size: 28px;
  font-weight: 600;
  margin-bottom: 8px;
}

.tagline {
  font-size: 16px;
  color: #4A5568;
}

/* 見出し */
h3 {
  font-size: 15px;
  font-weight: 600;
  color: #1A202C;
  margin-top: 24px;
  margin-bottom: 8px;
}

/* プロフィール */
.name {
  font-size: 20px;
  font-weight: 600;
  margin-bottom: 4px;
}

.title {
  font-size: 14px;
  color: #4A5568;
  margin-bottom: 16px;
}

.bio {
  color: #4A5568;
}

.bio-gap {
  margin-top: 8px;
}

/* リンク行（LinkedIn | X | note） */
.profile-links {
  margin-top: 16px;
}

.separator {
  margin: 0 12px;
  color: #E2E8F0;
}

/* リスト */
.spec-list {
  list-style: none;
  color: #4A5568;
}

.spec-list li {
  margin-bottom: 4px;
}

.spec-gap {
  margin-top: 8px;
}

/* リンク */
a {
  color: #1A365D;
  text-decoration: none;
}

a:hover {
  color: #319795;
}

/* 会社概要テーブル */
.company-table {
  width: 100%;
  border-collapse: collapse;
}

.company-table th {
  text-align: left;
  font-weight: 400;
  color: #718096;
  padding: 8px 16px 8px 0;
  white-space: nowrap;
  vertical-align: top;
  width: 120px;
}

.company-table td {
  padding: 8px 0;
}

/* お問い合わせ */
.cta {
  color: #1A202C;
  font-size: 16px;
  font-weight: 600;
  margin-bottom: 16px;
}

.btn-contact {
  display: inline-block;
  padding: 12px 24px;
  border: 1px solid #1A365D;
  border-radius: 6px;
  font-weight: 600;
  font-size: 14px;
  text-align: center;
  background: #FFFFFF;
  color: #1A365D;
}

.btn-group {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 16px;
}

.btn-group .btn-contact {
  flex: 1;
  min-width: 140px;
}

.btn-group .separator {
  display: none;
}

.btn-contact:hover {
  background: #1A365D;
  color: #FFFFFF;
}

/* フッター */
footer {
  padding: 32px 0;
  border-top: 1px solid #E2E8F0;
  font-size: 13px;
  color: #A0AEC0;
  display: flex;
  justify-content: space-between;
}

.sp-only {
  display: none;
}

/* プライバシーポリシーページ */
.privacy h1 {
  font-size: 22px;
}

.privacy h2 {
  font-size: 16px;
  font-weight: 600;
  margin-top: 32px;
  margin-bottom: 8px;
}

.privacy p,
.privacy li {
  color: #4A5568;
  margin-bottom: 8px;
}

.privacy ol,
.privacy ul {
  padding-left: 24px;
}

.privacy .back-link {
  display: inline-block;
  margin-bottom: 32px;
  font-size: 14px;
}

.privacy header {
  padding: 64px 0 32px;
}

.privacy .content {
  padding-bottom: 64px;
}

.privacy footer {
  display: block;
}

.privacy table {
  width: 100%;
  border-collapse: collapse;
  margin: 16px 0;
  font-size: 14px;
}

.privacy th,
.privacy td {
  border: 1px solid #E2E8F0;
  padding: 8px 12px;
  text-align: left;
  vertical-align: top;
  color: #4A5568;
}

.privacy th {
  background: #F7FAFC;
  font-weight: 600;
  color: #1A202C;
}

.privacy .policy-date {
  margin-top: 32px;
  color: #718096;
  font-size: 13px;
}

.privacy .footer-back {
  margin-top: 8px;
}

/* レスポンシブ */
@media (max-width: 768px) {
  .sp-only { display: inline; }
  h1 { font-size: 22px; }
  .tagline { font-size: 14px; }
  section { padding: 48px 0; }
  footer { flex-direction: column; gap: 8px; }
}

/* ========== CTA Modal (資料請求 ポップアップ) ========== */
.cta-modal{
  position:fixed;inset:0;background:rgba(0,0,0,.55);
  display:none;align-items:center;justify-content:center;
  z-index:200;backdrop-filter:blur(2px);
}
.cta-modal.active{display:flex}
.cta-modal-card{
  background:#FFFFFF;border-radius:14px;
  padding:36px 32px 28px;
  width:500px;max-width:calc(100vw - 32px);max-height:90vh;overflow-y:auto;
  position:relative;
  box-shadow:0 24px 60px rgba(0,0,0,.32);
  animation:cta-pop .25s ease-out;
}
@keyframes cta-pop{
  from{opacity:0;transform:translateY(20px) scale(.96)}
  to{opacity:1;transform:none}
}
.cta-modal-card h3{
  font-size:20px;margin:0 0 10px;color:#1A202C;
  font-weight:700;line-height:1.4;
}
.cta-modal-lead{
  font-size:14px;color:#4A5568;margin:0 0 20px;line-height:1.7;
}
.cta-modal-close{
  position:absolute;top:10px;right:8px;
  background:none;border:0;font-size:24px;cursor:pointer;color:#718096;
  width:36px;height:36px;line-height:1;border-radius:50%;
  display:flex;align-items:center;justify-content:center;font-family:inherit;
}
.cta-modal-close:hover{background:#F7FAFC;color:#1A202C}
.cta-form-row{margin-bottom:14px}
.cta-form-row label{
  display:block;font-size:12px;color:#718096;
  font-weight:600;margin-bottom:5px;letter-spacing:.05em;
}
.cta-form-row input[type=text],
.cta-form-row input[type=email]{
  width:100%;padding:12px 14px;
  border:1.5px solid #E2E8F0;border-radius:6px;
  font-size:14px;font-family:inherit;background:#FFFFFF;color:#1A202C;
  box-sizing:border-box;transition:border-color .15s;
}
.cta-form-row input[type=text]:focus,
.cta-form-row input[type=email]:focus{outline:0;border-color:#1A365D}
.cta-form-row input.invalid{border-color:#C53030;background:#FFF5F5}
.cta-form-error{
  display:none;font-size:12px;color:#C53030;font-weight:600;
  margin-top:5px;line-height:1.5;
}
.cta-form-error.show{display:block}
.cta-form-hint{
  font-size:11px;color:#718096;font-weight:500;
  margin-left:6px;letter-spacing:0;
}
.cta-form-options{
  background:#F7FAFC;border:1px solid #E2E8F0;border-radius:8px;
  padding:14px 14px;margin:18px 0;
}
.cta-form-options-title{
  font-size:12px;color:#1A365D;font-weight:700;
  letter-spacing:.1em;margin-bottom:10px;
}
.cta-form-check{
  display:flex;align-items:flex-start;gap:10px;
  padding:6px 0;cursor:pointer;font-size:14px;color:#1A202C;line-height:1.5;
}
.cta-form-check input[type=checkbox]{
  width:18px;height:18px;cursor:pointer;
  margin-top:3px;accent-color:#1A365D;
}
.cta-submit-btn{
  width:100%;background:#1A365D;color:#FFFFFF;border:none;
  padding:14px 0;border-radius:6px;
  font-size:15px;font-weight:600;cursor:pointer;letter-spacing:.05em;
  box-shadow:0 4px 12px rgba(26,54,93,.25);
  font-family:inherit;margin-top:6px;
  transition:transform .12s,box-shadow .12s,background .12s;
}
.cta-submit-btn:hover{
  transform:translateY(-1px);background:#0F2A4F;
  box-shadow:0 8px 18px rgba(26,54,93,.35);
}
.cta-privacy{
  font-size:11px;color:#718096;text-align:center;
  margin-top:12px;line-height:1.55;
}
.cta-privacy a{color:#1A365D;text-decoration:underline}
.cta-success{text-align:center;padding:16px 0}
.cta-success .check-circle{
  width:64px;height:64px;border-radius:50%;
  background:#319795;display:grid;place-items:center;
  margin:0 auto 16px;box-shadow:0 10px 24px rgba(49,151,149,.35);
  font-size:32px;color:#FFFFFF;
}
.cta-success h3{margin-bottom:12px}
.cta-success p{font-size:14px;color:#4A5568;line-height:1.75;margin:0 0 18px}
.cta-success .next-step{
  background:#F7FAFC;border-left:3px solid #1A365D;
  padding:14px 16px;text-align:left;
  font-size:13px;color:#4A5568;line-height:1.65;
  margin-bottom:18px;border-radius:0 6px 6px 0;
}
.cta-success-close{
  background:#1A202C;color:#FFFFFF;border:none;
  padding:11px 36px;border-radius:6px;
  font-size:14px;font-weight:600;cursor:pointer;font-family:inherit;
}

@media (max-width:768px){
  .cta-modal-card{padding:28px 22px 24px}
  .cta-modal-card h3{font-size:18px}
  .cta-modal-lead{font-size:13px}
}
