/* online.css - 整理・修正版 */

/* ─── ヒーローセクション ─── */
.hero {
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  margin: 0;
  padding: 0;
  position: relative;
  background: url('/assets/images/girl-4459035_1280.jpg') center/cover no-repeat;
}

/* ─── 動画プレビューセクション ─── */
.video-preview {
  background-color: #fff;
  padding: 80px 0;
}
.video-preview .container {
  max-width: 1200px;
  margin: 0 auto;
  /* 左右に16pxの余白を追加 */
  padding: 0 16px;
}
.video-preview__title {
  font-size: 2rem;
  color: #e10080;
  text-align: center;
  margin-bottom: 40px;
}

/* ─── 動画ラッパー ─── */
.hero-video-wrapper {
  max-width: 960px;
  margin: 0 auto 1.5rem;
  position: relative;
  width: 100%;
  padding-top: 56.25%;
  height: 0;
  overflow: hidden;
  border-radius: 8px;
}
.hero-video-wrapper .hero-video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* ─── 説明カード ─── */
.hero-description-card {
  width: calc(100% - 40px);
  max-width: 720px;
  margin: 1.5rem auto 2rem;
  padding: 24px;
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
  text-align: center;
}
.hero-description-card h3 {
  margin-bottom: 12px;
  font-size: 1.5rem;
  color: #e10080;
  line-height: 1.3;
}
.hero-description-card p {
  margin-bottom: 20px;
  font-size: 1rem;
  color: #333;
  line-height: 1.6;
}
.hero-description-card .btn-hero {
  display: inline-block;
  padding: 12px 28px;
  background: #e10080;
  color: #fff;
  font-weight: bold;
  border-radius: 6px;
  text-decoration: none;
}

/* ─── 新着コラムセクション ─── */
.blog-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 25px;
  /* 左右に16pxの余白を追加 */
  padding: 0 16px; 
}
.blog-card {
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  transition: transform 0.3s ease;
}
.blog-card:hover {
  transform: translateY(-5px);
}
.blog-card-image {
  width: 100%;
  aspect-ratio: 16/9;
}
.blog-card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.blog-card-content {
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  padding: 15px;
}
.blog-card-content h3 {
  flex-grow: 1;
  margin: 0 0 10px;
  font-size: 18px;
  line-height: 1.5;
}
.blog-card-author {
  display: flex;
  align-items: center;
  margin-top: auto;
}
.blog-card-author img {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  margin-right: 10px;
  object-fit: cover;
}

/* ─── レビューセクション ─── */
.reviews {
  background-color: #f9f9f9;
  padding: 60px 0;
}
.reviews .container {
    max-width: 1200px;
    margin: 0 auto;
    /* 左右に16pxの余白を追加 */
    padding: 0 16px;
}
.reviews h2,
.reviews .section-description {
  text-align: center;
}
.reviews h2 {
  margin-bottom: 15px;
}
.reviews .section-description {
  margin-bottom: 40px;
  color: #555;
}
.review-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 20px;
  margin-bottom: 40px;
}
.review-card {
  background: #fff;
  border: 1px solid #eee;
  border-radius: 8px;
  padding: 20px;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05);
}
.review-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 10px;
}
.review-meta {
  font-size: 0.9em;
  font-weight: bold;
  color: #666;
}
.review-stars {
  color: #ffc107;
}
.review-card h4 {
  margin-bottom: 15px;
  font-size: 1.1em;
  color: #e91e63;
}
.review-card p {
  margin-bottom: 15px;
  font-size: 0.95em;
  line-height: 1.7;
}
.review-teller {
  display: block;
  text-align: right;
  font-size: 0.9em;
  color: #888;
}

/* ─── 共通ボタン ─── */
.view-more-button-container,
.schedule-button-container {
  text-align: center;
  margin-top: 40px;
}
.cta-button.cta-secondary {
  display: inline-block;
  min-width: 260px;
  padding: 12px 30px;
  background: #fff;
  color: #e91e63;
  border: 2px solid #e91e63;
  border-radius: 50px;
  text-decoration: none;
  font-weight: bold;
  transition: all 0.3s;
}
.cta-button.cta-secondary:hover {
  background: #e91e63;
  color: #fff;
}

/* ─── レスポンシブ ─── */
@media screen and (max-width: 768px) {
  /* ... (他のコードはそのまま) ... */
  .hero-video-wrapper {
    max-width: 100%;
    margin-bottom: 1rem;
    padding-top: 56.25%;
  }
}

/* 占い師カード全体 */
.teller-card {
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  margin: 0 auto;
  padding: 20px;  /* ← 全体に余白を追加 */
}

/* テキスト部分 */
.teller-card-content {
  max-width: 85%;     /* ← 行幅を制限して読みやすく */
  margin: 0 auto;     /* ← 中央に配置 */
  padding: 0 10px;    /* ← 左右に余白 */
  text-align: left;   /* ← 左寄せで読みやすく */
  line-height: 1.7;
  color: #333;
}

/* 占い師の名前 */
.teller-card-content h3 {
  font-size: 1.3rem;
  margin-bottom: 12px;
  color: #e10080;
  text-align: center; /* ← 名前は中央に */
}

/* 占術タグ */
.teller-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
  margin-bottom: 14px;
}
.teller-tags span {
  background: #fce4ec;
  color: #e10080;
  font-size: 0.85rem;
  padding: 5px 10px;
  border-radius: 50px;
}

/* --- モバイルの全体余白をリセット（重複ガター解消） --- */
@media screen and (max-width: 768px) {
  body { padding-left: 0 !important; padding-right: 0 !important; }
}

/* --- モバイル用：必要な場所だけガターを付与 --- */
@media screen and (max-width: 768px) {
  /* セクションタイトル/リード文（端張り付きを防止） */
  .section-title,
  .section-header,
  .section-lead { padding-left: 16px; padding-right: 16px; }

  /* 主要セクションのコンテナ（ここにだけ横ガター） */
  .video-preview .container,
  .reviews .container,
  .blog-cards { padding-left: 16px; padding-right: 16px; }

  /* カードのはみ出し・偏り防止（念のため） */
  .blog-card,
  .review-card { margin-left: auto; margin-right: auto; }
}

/* --- 占い師カード：読みやすさ維持（既出調整の再掲/強化） --- */
.teller-card { padding: 20px; }
.teller-card-content {
  max-width: 85%;
  margin: 0 auto;
  padding: 0 10px;
  text-align: left;
  line-height: 1.7;
  color: #333;
}

/* コラムカード：テキストを端から離す */
.blog-card-content{
  padding: 18px 20px 16px; /* ←左右20pxで見出し/ラベルともに離す */
}

/* カテゴリラベル（例：恋愛の悩み）の内側余白と見栄え */
.blog-card-category,
.blog-card .category,
.post-category,
.article-category{
  display:inline-block;
  padding: 4px 10px;       /* ←ラベル内側に余白 */
  border-radius: 999px;    /* ピル型で視認性UP */
  background:#fce4ec;
  color:#e10080;
  line-height:1.3;
  margin-bottom: 8px;      /* 見出しと密着しないように */
}

/* タイトルとの距離感を微調整（任意） */
.blog-card-content h3{
  margin-top: 6px;
}

/* ── 支払い方法セクション：本文だけ左寄せに強制上書き ── */
/* id/class 名に "payment" を含む要素を面で拾う（HTML改修なしでも効かせる） */
[id*="payment"] .card,
[class*="payment"] .card,
[id*="payment"] p,
[class*="payment"] p,
[id*="payment"] li,
[class*="payment"] li,
[id*="payment"] .content,
[class*="payment"] .content {
  text-align: left !important;
  line-height: 1.8;
}

/* カードの左右にセーフエリアを確保（端詰まり防止） */
[id*="payment"] .card,
[class*="payment"] .card,
[id*="payment"] .content,
[class*="payment"] .content {
  padding-left: 20px !important;
  padding-right: 20px !important;
}

/* 見出しは中央のままにする場合 */
[id*="payment"] h2,
[class*="payment"] h2 {
  text-align: center !important;
}

<!-- online.cssに以下を追加 -->
<style>
/* ========================================
   占い師カードの正しいスタイル定義
   ======================================== */

/* 占い師カード全体 */
.teller-card {
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  margin: 0 auto;
  padding: 0; /* パディングをリセット */
  position: relative;
}

/* バッジ */
.teller-badge {
  position: absolute;
  top: 10px;
  right: 10px;
  background: #e10080;
  color: #fff;
  padding: 5px 12px;
  border-radius: 20px;
  font-size: 0.85rem;
  font-weight: bold;
  z-index: 1;
}

/* 画像部分 */
.teller-image {
  width: 100%;
  height: 250px;
  overflow: hidden;
}

.teller-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* 占い師の名前（h3を直接スタイリング） */
.teller-card h3 {
  font-size: 1.3rem;
  margin: 20px 20px 12px;
  color: #e10080;
  text-align: center;
}

/* 占術タグ（クラス名を統一） */
.teller-specialty-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
  margin: 0 20px 14px;
}

.teller-specialty-tags span {
  background: #fce4ec;
  color: #e10080;
  font-size: 0.85rem;
  padding: 5px 10px;
  border-radius: 50px;
}

/* 説明文（pタグを直接スタイリング） */
.teller-card > p:not(.teller-profile-link) {
  margin: 0 20px 20px;
  line-height: 1.7;
  color: #333;
  text-align: left;
  font-size: 0.95rem;
}

/* プロフィールリンク */
.teller-profile-link {
  margin: auto 20px 20px !important;
  text-align: center;
  margin-top: auto; /* 下部に配置 */
}

.teller-profile-link a {
  color: #e10080;
  text-decoration: none;
  font-size: 0.9rem;
  font-weight: 500;
  transition: opacity 0.3s;
}

.teller-profile-link a:hover {
  opacity: 0.7;
  text-decoration: underline;
}

/* カードグリッド */
.teller-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 30px;
  margin-bottom: 40px;
}

/* スワイプインジケーター */
.swipe-indicator {
  text-align: center;
  margin: 20px 0;
  color: #888;
  font-size: 0.9rem;
}

.swipe-indicator i {
  margin-right: 8px;
  color: #e10080;
}

/* レスポンシブ対応 */
@media screen and (max-width: 768px) {
  .teller-cards {
    grid-template-columns: 1fr;
    gap: 20px;
    padding: 0 16px;
  }
  
  .teller-card {
    max-width: 400px;
    margin: 0 auto;
  }
  
  .swipe-indicator {
    display: none; /* モバイルではスワイプ表示不要 */
  }
}

/* 古いスタイルを無効化（念のため） */
.teller-card-content {
  /* 既存のスタイルを維持しつつ、新しい構造では使用しない */
  display: contents; /* もし誤って使われても影響しないように */
}

/* .teller-tagsが使われている場合の互換性 */
.teller-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
  margin: 0 20px 14px;
}

.teller-tags span {
  background: #fce4ec;
  color: #e10080;
  font-size: 0.85rem;
  padding: 5px 10px;
  border-radius: 50px;
}
</style>