body {
  font-family: "ヒラギノ角ゴ ProN", "Meiryo", sans-serif;
  margin: 0;
  padding: 0;
  line-height: 1.6;
  color: #333;
}

/* ============================= */
/* ヘッダー */
/* ============================= */
header {
  background: #fff;
  border-bottom: 1px solid #ddd;
  padding: 12px 20px;
}
.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: 1000px;
  margin: 0 auto;
}
.header-logo img {
  max-height: 50px;
  height: auto;
  width: auto;
}

/* ============================= */
/* 共通セクション */
/* ============================= */
	.section {
	  padding: 40px 20px 10px;
	  text-align: center;
	  max-width: 1000px;
	  margin: 0 auto;
	}
	#hpc.section { padding-top: 0 !important;}
	#hpc.section { padding-bottom: 0; }
	#details.section { padding-top: 10px; }
	#register.section { padding-top: 0; }

/* ============================= */
/* セクションタイトル */
/* ============================= */
	.section-title {
	  background: linear-gradient(135deg, #007acc 0%, #33cfff 100%);
	  color: #fff;
	  font-weight: bold;
	  font-size: 1.8rem;
	  line-height: 1.3;
	  padding: 12px;
	  margin-bottom: 20px;
	}
	#hpc .section-title {
	  background: #DAEEF7;
	  color: #333;
	  font-size: 1.3rem;
	  padding: 10px 0;
	  margin-bottom: 0;
	}
	#details .section-title {
	  background: none;
	  color: #000;
	  font-size: 1.3rem;
	  line-height: 1.8;
	  padding: 12px 0;
	  margin-bottom: 20px;
	}
	#flow .section-title,
	#faq .section-title {
	  background: none;     /* 背景を消す */
	  color: #000;          /* 黒文字 */
	  font-size: 1.3rem;    /* 同じ大きさ */
	  line-height: 1.8;
	  padding: 12px 0;
	  margin-bottom: 20px;
	}


/* ============================= */
/* ご登録案内テキスト */
/* ============================= */
#register { margin-top: 20px; }
.register-text {
  font-size: 1.3rem;
  font-weight: bold;
  line-height: 1.8;
  margin: 15px 0;
}

/* ============================= */
/* オレンジボタン（単体型） */
/* ============================= */
.btn-campaign {
  display: block;
  width: 100%;
  max-width: 600px;
  margin: 20px auto;
  padding: 18px;
  background: #e98300;
  color: #fff;
  font-weight: bold;
  font-size: 1.2rem;
  text-align: center;
  text-decoration: none;
  border-radius: 6px;
  transition: background 0.3s;
}
.btn-campaign:hover { background: #cc6e00; }

/* ============================= */
/* テーブル */
/* ============================= */
.detail-table {
  width: 100%;
  border-collapse: collapse;
  margin: 20px auto;
  max-width: 1000px;
}
.detail-table th {
  background: #DAEEF7;
  color: #111;
  font-weight: bold;
  padding: 12px;
  text-align: left;
}
.detail-table td {
  border: 1px solid #ddd;
  padding: 12px;
  text-align: left;
  background: #fff;
}

/* ============================= */
/* グリッドボタン */
/* ============================= */
.grid-buttons {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  max-width: 600px;
  margin: 0 auto;
}
.grid-buttons a {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2px 12px;   /* ← 上下余白を 14px → 8px に縮小 */
  background: #f0f0f0;
  border: 1px solid #ccc;
  border-radius: 6px;
  text-decoration: none;
  color: #333;
  font-weight: bold;
  text-align: center;
  min-height: 45px;   /* ← 高さを 60px → 40px に縮小 */
}
}
.grid-buttons a.disabled-box {
  pointer-events: none;
  cursor: default;
}
.grid-buttons a.disabled-box:hover {
  background: #f0f0f0;
  color: #333;
}

/* ============================= */
/* サービス時間 */
/* ============================= */
.service-hours {
  margin-top: 20px;
  font-size: 0.9rem;
  color: #666;
  text-align: left;        /* ← 左寄せ */
  line-height: 1.5;
  max-width: 1000px;       /* ← キャンペーン内容の幅に合わせる */
  margin-left: 0;          /* ← 左揃え */
  margin-right: auto;      /* ← 左寄せ */
}
.service-hours .note {
  margin-top: 8px;
  font-size: 0.85rem;
}

/* ============================= */
/* FAQ */
/* ============================= */
dl.faq-list {
  max-width: 800px;
  margin: 0 auto;
  text-align: left;
}
dl.faq-list dt {
  font-weight: bold;
  margin-top: 15px;
}
dl.faq-list dd {
  margin: 5px 0 15px 20px;
}
#faq dl.faq-list { text-align: left; }

/* ============================= */
/* フローティングボタン */
/* ============================= */
	.floating-btn {
	  position: fixed;
	  left: 0;
	  right: 0;
	  bottom: 0;
	  background: rgba(0,0,0,0.6);
	  z-index: 1000;
	  text-align: center;
	  padding: 4px 0;  /* ← 12px → 4px に調整 */
	}

	.floating-btn.hidden { display: none; }

/* ============================= */
/* スプリットボタン（共通） */
/* ============================= */
	.btn-split {
	  display: inline-flex;
	  align-items: center;
	  justify-content: center;
	  background: #e98300;
	  border-radius: 40px;
	  overflow: hidden;
	  box-shadow: 0 3px 6px rgba(0,0,0,0.25);
	  text-decoration: none;
	  font-weight: bold;
	  margin: 15px auto 20px;
	  width: 95%;
	  max-width: 600px;
	  min-height: 64px;
	}

	.btn-left {
	  background: #fff;
	  color: #e98300;
	  border-radius: 40px;
	  white-space: nowrap;
	  text-align: center;
	  padding: 10px 18px;
	  font-size: 1.2rem;
	  flex: 0;
	  margin-left: 12px;   /* ← ここを追加！ pill全体を少し右へ */
	}

	.btn-right {
	  color: #fff;
	  white-space: nowrap;
	  text-align: center;
	  padding: 10px 18px;
	  font-size: 1.2rem;
	  flex: 1;
	}

	.btn-split:hover { background: #cc6e00; }
	.btn-split:hover .btn-left { background: #fff8f0; }
	}
	.btn-left, .btn-right {
	  white-space: nowrap; /* 折り返し禁止 */
	}

/* ============================= */
/* フロー図 */
/* ============================= */
/* フロー全体（PC） */
.flow-steps {
  display: flex;
  justify-content: space-between;
  align-items: stretch;
  flex-wrap: nowrap;
  gap: 4px;               /* ← ステップ間の隙間を最小に */
  margin: 30px auto;
  max-width: 1100px;
}

/* ステップカード */
.flow-step {
  flex: 1;
  background: #DAEEF7;
  border-radius: 10px;
  padding: 20px 15px;
  text-align: center;
  position: relative;
  min-height: 200px;
  font-size: 0.9rem;
  margin: 0;              /* ← 矢印との余白なし */
}
.flow-step-content {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  text-align: center;
}
/* Step番号 */
.step-num {
  background: #00a5d9;
  color: #fff;
  font-weight: bold;
  font-size: 0.8rem;   /* ← 少し小さめ */
  padding: 4px 10px;
  position: absolute;
  top: 10px;
  left: 10px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.15);
}

/* 見出し */
.flow-step h3 {
  font-size: 1.2rem;       /* ← 一番大きくする */
  font-weight: bold;
  margin: 40px 0 12px;     /* Step番号との間隔を確保 */
  min-height: 48px;        /* ← 高さを揃える */
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

/* 本文 */
.flow-step p {
  font-size: 0.9rem;
  margin: 6px 0;
  line-height: 1.5;
}

/* 矢印（共通） */
.arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;      /* ← 少し小さく */
  color: #00a5d9;
  margin: 0 2px;          /* ← ステップに近接 */
}
/* 強調テキスト */
.highlight {
  color: #000;
  font-weight: bold;
  font-size: 0.9rem;   /* ← h3より小さい */
}
.note { font-size: 0.85rem; color: #007a32; font-weight: bold; }
.note-small {
  font-size: 0.85rem;
  color: #555;
  margin-top: 8px;
  line-height: 1.5;
}
.link-heading {
  font-size: 1.2rem;
  font-weight: bold;
  margin: 25px 0 15px;
  text-align: center;
}
.link-heading a {
  color: #007acc;
  text-decoration: none;
}
.link-heading a:hover { text-decoration: underline; }
.page-bottom-space {
  height: 100px; /* ← フローティングボタンの高さ＋余裕 */
}


/* PC時のsplitボタン調整 */
@media (min-width: 769px) {
  .btn-split {
    display: inline-flex;
    width: auto;             /* ← 文字幅に合わせる */
    max-width: none;         /* ← 幅制限解除 */
    padding: 0 10px;         /* ← 全体の余白を小さく */
  }

  .btn-left {
    margin-left: 8px;        /* ← pill左側の余白を詰める */
    padding: 8px 14px;       /* ← 文字にフィットするよう調整 */
    font-size: 1.1rem;       /* ← 少しコンパクトに */
  }

  .btn-right {
    padding: 8px 14px;       /* ← 左右余白をタイトに */
    font-size: 1.1rem;
  }
}


/* ============================= */
/* スマホ対応 */
/* ============================= */
@media (max-width: 768px) {
  #hpc .section-title {
    font-size: 1.2rem;
    padding: 8px 0;
  }
  .section {
    padding-left: 0;
    padding-right: 0;
  }
  .section-title { font-size: 1.2rem; padding: 10px; }
  .register-text { font-size: 1.1rem; }
    #register.section,
	  #flow.section,
	  #faq.section {
	    padding-left: 12px;
	    padding-right: 12px;
	  }
  /* ただし register 内のボタンは左右余白なしで幅いっぱい */
    /* splitボタン共通 */
  .btn-split {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 95%;
    max-width: 600px;
    min-height: 60px;
    border-radius: 40px;
    background: #e98300;
    box-shadow: 0 3px 6px rgba(0, 0, 0, 0.25);
    margin: 20px auto;
  }

  /* 左側（白背景） */
  .btn-left {
    background: #fff;
    color: #e98300;
    font-weight: bold;
    border-radius: 40px;
    padding: 8px 12px;
    font-size: clamp(1rem, 2.5vw, 1.1rem);
    white-space: nowrap;
    margin-left: 8px;
    flex-shrink: 0;
  }

  /* 右側（オレンジ背景） */
  .btn-right {
    background: transparent;
    color: #fff;
    font-weight: bold;
    padding: 8px 12px;
    font-size: clamp(1rem, 2.5vw, 1.1rem);
    white-space: nowrap;
    flex-grow: 1;
  }

  /* テキスト詰め気味 */
  .btn-left, .btn-right {
    letter-spacing: -0.03em;
  }
     #details.section {
    max-width: 100% !important; /* ← 幅いっぱい */
    width: 100% !important;     /* ← 念のため明示 */
    margin: 0 !important;       /* ← autoを解除 */
    padding-left: 0 !important; /* ← 左右paddingもゼロ */
    padding-right: 0 !important;
  }
  .detail-table, .detail-table th, .detail-table td, .note-small {
    max-width: 100%;
    width: 100%;
    box-sizing: border-box;
    padding-left: 5px;
    padding-right: 5px;
  }
  .detail-table {
  border-collapse: separate;
  border-spacing: 0;
  }
    #details.section {
    max-width: 100% !important;
    width: 100% !important;
    margin: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

	.detail-table {
	  border-collapse: collapse;
	  border-spacing: 0;
	  width: 100%;
	}

.detail-table th {
  background: #DAEEF7;
  border: 1px solid #ddd; /* ← td と揃える */
  border-left: none;      /* ← 必要に応じて消せる */
  padding: 12px;
  text-align: left;
}

  .detail-table th,
  .detail-table td {
    padding-left: 8px;
    padding-right: 8px;
    box-sizing: border-box;
  }
  .grid-buttons { grid-template-columns: 1fr; }
  .flow-steps {
    flex-direction: column;
    gap: 16px;
    margin: 0 auto;
    padding: 0 10px;
  }
  .flow-step { flex: none; width: 100%; box-sizing: border-box; }
  .flow-step h3 {
    font-size: 1.1rem;
    min-height: auto; /* モバイルは高さ揃え解除で自然に */
  }
  .arrow {
    transform: rotate(90deg);
    margin: 4px 0;    /* 縦矢印の隙間も詰める */
  }
    /* 矢印を縦向きにする */
  .arrow {
    transform: rotate(90deg);  /* 横矢印を縦矢印に */
    font-size: 1.5rem;        /* 少し小さめでもOK */
    margin: 8px 0;            /* 上下の余白を追加 */
  }
  .flow-steps + .flow-steps { margin-top: 40px; }
  .flow-steps + .flow-steps { margin-top: 40px; }
  .flow-steps {
    flex-direction: column;
    gap: 4px;             /* ← ステップ間も詰める */
    padding: 0 10px;
  }
  .flow-step { 
    flex: none; 
    width: 100%; 
    box-sizing: border-box; 
  }
  .arrow {
    transform: rotate(90deg);  /* 縦矢印 */
    font-size: 1rem;           /* ← さらに小さめ */
    margin: 2px 0;             /* ← 上下の余白も詰める */
  }


}

/* iPhone SE (375px) など極小端末 */
@media (max-width: 375px) {
  .btn-left, .btn-right {
    font-size: 1rem;
    padding: 6px 10px;
  }
}
