/* ============================================================
   遊び固定ページ（page-play.php）専用CSS
   ============================================================ */

/* ============================================================
   MAIN WRAP
   ============================================================ */
.main-wrap {
  max-width: 860px;
  margin: 0 auto;
  padding: 40px 28px 80px;
}

/* ============================================================
   セクション区切り線
   ============================================================ */
.sec-divider {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 48px 0 28px;
}
.sd-line {
  flex: 1;
  height: 1px;
  background: linear-gradient(to right, var(--or-m), transparent);
}
.sd-label {
  font-size: 12px;
  font-weight: 700;
  color: var(--ink2);
  white-space: nowrap;
  letter-spacing: .06em;
}

/* ============================================================
   共通 見出し
   ============================================================ */
.sec-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .14em;
  color: var(--or);
  text-transform: uppercase;
  margin-bottom: 10px;
}
.sec-eyebrow::before {
  content: "";
  width: 18px; height: 2px;
  background: var(--or);
  border-radius: 1px;
  display: block;
}
.sec-title {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 900;
  font-size: 24px;
  line-height: 1.35;
  color: var(--ink);
  margin-bottom: 12px;
}
.sec-desc {
  font-size: 13px;
  color: var(--ink2);
  line-height: 1.9;
  margin-bottom: 28px;
}

/* ============================================================
   育まれる能力セクション
   ============================================================ */
.ability-section {
  margin-bottom: 48px;
}

/* タブ */
.ability-tabs {
  display: flex;
  gap: 6px;
  margin-bottom: 0;
  border-bottom: 2px solid var(--border);
  padding-bottom: 0;
}
.atab {
  padding: 10px 18px;
  font-size: 13px;
  font-weight: 700;
  font-family: inherit;
  border: none;
  background: transparent;
  color: var(--ink3);
  cursor: pointer;
  border-bottom: 3px solid transparent;
  margin-bottom: -2px;
  transition: .15s;
  white-space: nowrap;
}
.atab:hover { color: var(--or); }
.atab.active {
  color: var(--or);
  border-bottom-color: var(--or);
}

/* パネル */
.ability-panel { display: none; }
.ability-panel.active {
  display: block;
  animation: fadeUp .25s ease both;
}
.ability-panel-inner {
  background: var(--white);
  border: 1.5px solid var(--border);
  border-radius: 0 16px 16px 16px;
  padding: 24px;
}
.ap-header {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 20px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--bdr2);
}
.ap-icon {
  width: 48px; height: 48px;
  border-radius: 12px;
  display: flex; align-items: center; justify-content: center;
  font-size: 22px;
  flex-shrink: 0;
}
.ap-icon.life  { background: #e6f7f1; }
.ap-icon.study { background: #eef3fd; }
.ap-icon.mind  { background: #fee8f0; }
.ap-head-text h3 {
  font-size: 15px;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: 4px;
}
.ap-head-text p {
  font-size: 12px;
  color: var(--ink3);
  line-height: 1.6;
}
.ap-items {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.ap-item {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 14px 16px;
  border-radius: 10px;
  border: 1px solid var(--border);
}
.ap-item.life  { background: #f0faf5; }
.ap-item.study { background: #f0f5ff; }
.ap-item.mind  { background: #fff0f5; }
.ap-item-icon {
  font-size: 22px;
  flex-shrink: 0;
  margin-top: 2px;
}
.ap-item-body h4 {
  font-size: 13px;
  font-weight: 700;
  margin-bottom: 4px;
}
.ap-item-body h4.life  { color: var(--green); }
.ap-item-body h4.study { color: var(--blue); }
.ap-item-body h4.mind  { color: var(--rose); }
.ap-item-body p {
  font-size: 12px;
  color: var(--ink2);
  line-height: 1.75;
}

/* ============================================================
   土台カードセクション
   ============================================================ */
.base-section {
  margin-bottom: 48px;
}
.base-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}
.base-card {
  background: var(--white);
  border-radius: 16px;
  padding: 20px;
  border: 1.5px solid var(--border);
  position: relative;
  overflow: hidden;
  transition: .2s;
  animation: fadeUp .4s ease both;
}
.base-card::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 4px;
  background: var(--gradient);
}
.base-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--shd);
}
.base-emoji {
  font-size: 28px;
  display: block;
  margin-bottom: 10px;
}
.base-name {
  font-size: 14px;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: 8px;
  line-height: 1.3;
}
.base-desc {
  font-size: 12px;
  color: var(--ink2);
  line-height: 1.7;
}

/* ============================================================
   やり方・ポイントセクション
   ============================================================ */
.howto-section { margin-bottom: 48px; }
.howto-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}
.howto-card {
  background: var(--white);
  border: 1.5px solid var(--border);
  border-radius: 14px;
  padding: 18px 20px;
  transition: .15s;
}
.howto-card:hover {
  border-color: var(--or-m);
  box-shadow: var(--sh);
}
.howto-card h4 {
  font-size: 13px;
  font-weight: 700;
  color: var(--or-d);
  margin-bottom: 10px;
  padding-bottom: 8px;
  border-bottom: 2px solid var(--or-l);
}
.howto-card p {
  font-size: 12px;
  color: var(--ink2);
  line-height: 1.85;
}
.howto-card ul {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.howto-card ul li {
  font-size: 12px;
  color: var(--ink2);
  display: flex;
  align-items: flex-start;
  gap: 6px;
  line-height: 1.6;
}
.howto-card ul li::before {
  content: "›";
  color: var(--or-m);
  font-weight: 700;
  flex-shrink: 0;
  font-size: 15px;
  line-height: 1.4;
}

/* ============================================================
   前段階の遊びセクション
   ============================================================ */
.fp-section {
  background: var(--paper2);
  border-radius: 20px;
  padding: 28px 24px;
  margin-bottom: 48px;
}
.fp-eyebrow {
  font-size: 10px;
  font-weight: 700;
  color: var(--or);
  letter-spacing: .14em;
  text-transform: uppercase;
  margin-bottom: 8px;
}
.fp-title {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 900;
  font-size: 20px;
  color: var(--ink);
  margin-bottom: 10px;
  line-height: 1.35;
}
.fp-title b { color: var(--or); font-weight: 900; }
.fp-desc {
  font-size: 12px;
  color: var(--ink2);
  line-height: 1.85;
  margin-bottom: 24px;
}
.fp-flow {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  overflow-x: auto;
  padding-bottom: 8px;
  scrollbar-width: none;
}
.fp-flow::-webkit-scrollbar { display: none; }
.fp-stage {
  flex-shrink: 0;
  background: var(--white);
  border: 1.5px solid var(--border);
  border-radius: 12px;
  padding: 14px 14px;
  min-width: 130px;
}
.fp-age-badge {
  display: inline-block;
  background: var(--or);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  padding: 2px 10px;
  border-radius: 20px;
  margin-bottom: 10px;
}
.fp-plays {
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.fp-play-item {
  font-size: 11px;
  color: var(--ink2);
  display: flex;
  align-items: center;
  gap: 5px;
  line-height: 1.5;
}
.fp-arrow {
  font-size: 24px;
  color: var(--or-m);
  flex-shrink: 0;
  margin-top: 28px;
  line-height: 1;
}
.fp-goal {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
.fp-goal-badge {
  background: var(--or);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  padding: 2px 12px;
  border-radius: 20px;
}
.fp-goal-box {
  background: linear-gradient(135deg, var(--or), var(--amber));
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  padding: 16px 20px;
  border-radius: 12px;
  text-align: center;
  line-height: 1.8;
  box-shadow: 0 4px 16px rgba(232,98,26,.3);
}
.fp-note {
  margin-top: 20px;
  font-size: 12px;
  color: var(--ink2);
  background: var(--amber-l);
  border: 1px solid rgba(245,158,11,.2);
  border-radius: 10px;
  padding: 12px 16px;
  line-height: 1.8;
}
.fp-note strong { color: var(--amber); }

/* ============================================================
   保護者への言語化サポート
   ============================================================ */
.parents-section { margin-bottom: 48px; }
.parents-card {
  background: var(--white);
  border: 1.5px solid var(--border);
  border-radius: 20px;
  overflow: hidden;
}
.pc-header {
  background: linear-gradient(135deg, #1a1208, #3d1f05);
  padding: 24px 28px;
  display: flex;
  align-items: flex-start;
  gap: 16px;
}
.pc-header-icon {
  font-size: 28px;
  flex-shrink: 0;
  margin-top: 2px;
}
.pc-header h2 {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 900;
  font-size: 18px;
  color: #fff;
  margin-bottom: 6px;
}
.pc-header p {
  font-size: 12px;
  color: rgba(255,255,255,.6);
  line-height: 1.7;
}
.pc-body { padding: 24px 28px; }
.pc-intro {
  font-size: 13px;
  color: var(--ink2);
  line-height: 1.9;
  margin-bottom: 24px;
  padding: 16px 18px;
  background: var(--or-p);
  border-left: 4px solid var(--or);
  border-radius: 0 10px 10px 0;
}
.pc-intro strong { color: var(--or-d); font-weight: 700; }

/* スクリプト */
.pc-scripts {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.ps {
  border: 1.5px solid var(--border);
  border-radius: 14px;
  overflow: hidden;
}
.ps-header {
  background: var(--paper2);
  padding: 10px 16px;
  border-bottom: 1px solid var(--bdr2);
}
.ps-scene {
  font-size: 12px;
  font-weight: 700;
  color: var(--ink2);
}
.ps-body { padding: 14px 16px; }
.ps-situation {
  font-size: 11px;
  color: var(--ink3);
  margin-bottom: 10px;
  font-style: italic;
}
.ps-bubble {
  background: var(--or-p);
  border-left: 3px solid var(--or);
  border-radius: 0 10px 10px 0;
  padding: 12px 14px;
  font-size: 13px;
  color: var(--ink);
  line-height: 1.85;
  margin-bottom: 8px;
}
.ps-point {
  font-size: 11px;
  color: var(--or-d);
  font-weight: 600;
  display: flex;
  align-items: flex-start;
  gap: 5px;
}
.ps-point::before {
  content: "💡";
  flex-shrink: 0;
}

/* ============================================================
   関連する困りごと
   ============================================================ */
.related-section { margin-bottom: 48px; }
.related-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.related-tag {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: var(--white);
  border: 1.5px solid var(--border);
  border-radius: 20px;
  padding: 6px 14px;
  font-size: 12px;
  font-weight: 600;
  color: var(--ink2);
  transition: .15s;
  cursor: default;
}
.related-tag:hover {
  border-color: var(--or-m);
  background: var(--or-l);
  color: var(--or-d);
}

/* ============================================================
   実践レポートCTA
   ============================================================ */
.report-cta {
  background: linear-gradient(135deg, var(--or), #c24e0e);
  border-radius: 20px;
  padding: 28px 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 48px;
}
.rc-text h3 {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 900;
  font-size: 17px;
  color: #fff;
  margin-bottom: 8px;
}
.rc-text p {
  font-size: 12px;
  color: rgba(255,255,255,.8);
  line-height: 1.8;
}
.rc-btn {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #fff;
  color: var(--or-d);
  font-size: 13px;
  font-weight: 700;
  padding: 12px 22px;
  border-radius: 10px;
  text-decoration: none;
  transition: .2s;
  white-space: nowrap;
  box-shadow: 0 4px 14px rgba(0,0,0,.15);
}
.rc-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(0,0,0,.2);
}

/* ============================================================
   コピートースト
   ============================================================ */
.copy-toast {
  position: fixed;
  bottom: 28px;
  right: 28px;
  z-index: 400;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
}
.toast-msg {
  background: #1a1208;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  padding: 8px 16px;
  border-radius: 8px;
  opacity: 0;
  transition: opacity .3s;
  pointer-events: none;
}
.toast-msg.show { opacity: 1; }
.copy-btn {
  background: var(--or);
  color: #fff;
  border: none;
  border-radius: 10px;
  padding: 10px 18px;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  font-family: inherit;
  transition: .15s;
  box-shadow: 0 4px 16px rgba(232,98,26,.35);
}
.copy-btn:hover {
  background: var(--or-d);
  transform: translateY(-1px);
}

/* ============================================================
   メモ・制作依頼ボックス（リリース時削除）
   ============================================================ */
.memo-box {
  background: #fffde7;
  border: 1.5px dashed #f59e0b;
  border-radius: 12px;
  padding: 16px 20px;
  margin: 20px 0;
}
.memo-head {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
}
.memo-icon { font-size: 18px; }
.memo-title {
  font-size: 13px;
  font-weight: 700;
  color: #92400e;
}
.memo-content p {
  font-size: 12px;
  color: #78350f;
  line-height: 1.85;
}
.memo-question {
  margin-top: 14px;
  background: #fff;
  border: 1px solid #fcd34d;
  border-radius: 8px;
  padding: 12px 14px;
}
.memo-question-title {
  font-size: 12px;
  font-weight: 700;
  color: #b45309;
  margin-bottom: 8px;
}
.memo-q-item {
  font-size: 12px;
  color: #78350f;
  line-height: 1.85;
}
.memo-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 5px;
  margin: 8px 0;
}
.memo-list li {
  font-size: 12px;
  color: #78350f;
  display: flex;
  align-items: flex-start;
  gap: 6px;
}
.memo-list li::before {
  content: "›";
  color: #f59e0b;
  font-weight: 700;
}

.request-box {
  background: #eff6ff;
  border: 1.5px dashed #3b82f6;
  border-radius: 12px;
  padding: 16px 20px;
  margin: 20px 0;
}
.request-head {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
}
.request-icon { font-size: 18px; }
.request-title {
  font-size: 13px;
  font-weight: 700;
  color: #1e40af;
}
.request-content p {
  font-size: 12px;
  color: #1e3a8a;
  line-height: 1.85;
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 640px) {
  .main-wrap   { padding: 24px 16px 60px; }
  .base-grid   { grid-template-columns: 1fr; }
  .howto-grid  { grid-template-columns: 1fr; }
  .ability-tabs { overflow-x: auto; }
  .atab { font-size: 12px; padding: 8px 12px; }
  .report-cta  { flex-direction: column; align-items: flex-start; }
  .copy-toast  { bottom: 16px; right: 16px; }
  .fp-flow     { gap: 6px; }
  .fp-stage    { min-width: 110px; }
}

/* ============================================================
   PLAY HERO
   ============================================================ */
.play-hero {
  position: relative;
  width: 100%;
  height: 420px;
  overflow: hidden;
  background: #1a0e05;
}
.play-hero-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}
.play-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom,
    rgba(30,15,5,.25) 0%,
    rgba(20,10,0,.78) 100%
  );
}
.play-hero-content {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 32px 32px 36px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.ph-category {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--or);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .05em;
  padding: 4px 14px;
  border-radius: 20px;
  align-self: flex-start;
}
.ph-emoji {
  font-size: 52px;
  line-height: 1;
  filter: drop-shadow(0 2px 8px rgba(0,0,0,.4));
  align-self: flex-start;
}
.ph-title {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 900;
  font-size: 28px;
  line-height: 1.25;
  color: #fff;
  text-shadow: 0 2px 10px rgba(0,0,0,.5);
  margin: 0;
}
.ph-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.ph-meta-item {
  background: rgba(255,255,255,.15);
  color: #fff;
  font-size: 12px;
  font-weight: 500;
  padding: 5px 13px;
  border-radius: 20px;
  border: 1px solid rgba(255,255,255,.22);
  backdrop-filter: blur(6px);
  line-height: 1.4;
}

@media (max-width: 640px) {
  .play-hero         { height: 340px; }
  .play-hero-content { padding: 24px 20px 28px; gap: 8px; }
  .ph-emoji          { font-size: 40px; }
  .ph-title          { font-size: 22px; }
  .ph-meta-item      { font-size: 11px; padding: 4px 11px; }
}