/*
Theme Name: New Sakae (Child)
Template: sm-base-theme
Description: 千葉放課後アイドル推し活学園 — Custom Child Theme
*/

:root {
  --pink-primary: #e75480;
  --pink-light: #fce4ec;
  --pink-soft: #fff0f5;
  --pink-gradient: linear-gradient(135deg, #ff6b9d 0%, #e75480 100%);
  --lavender: #f3e5f5;
  --blue-light: #e8eaf6;
  --text-dark: #2d2d2d;
  --text-body: #444;
  --text-muted: #888;
  --white: #ffffff;
  --bg-cream: #fff8fa;
  --shadow-soft: 0 2px 20px rgba(231,84,128,0.08);
  --shadow-card: 0 4px 24px rgba(0,0,0,0.06);
  --shadow-hover: 0 8px 32px rgba(231,84,128,0.15);
  --radius-sm: 8px;
  --radius-md: 16px;
  --radius-lg: 24px;
  --radius-full: 50px;
  --transition: all 0.3s cubic-bezier(0.4,0,0.2,1);
  --font-main: 'Zen Maru Gothic','Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif;
}

body {
  font-family: var(--font-main) !important;
  background: var(--bg-cream) !important;
  color: var(--text-body) !important;
  line-height: 1.9 !important;
  -webkit-font-smoothing: antialiased;
}

h1,h2,h3,h4,h5,h6 {
  font-family: var(--font-main) !important;
  color: var(--text-dark) !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
}

a { color: var(--pink-primary); transition: var(--transition); }
a:hover { color: #c9446d; }

.oz_head {
  background: rgba(255,255,255,0.95) !important;
  backdrop-filter: blur(12px) !important;
  border-bottom: 1px solid rgba(231,84,128,0.1) !important;
  box-shadow: 0 1px 12px rgba(0,0,0,0.04) !important;
}
.oz_head .oz_ttl a, .oz_head .oz_ttl { color: var(--pink-primary) !important; font-weight: 700 !important; letter-spacing: 2px !important; }
.oz_head .oz_gnav a { color: var(--text-dark) !important; font-weight: 600 !important; font-size: 13px !important; letter-spacing: 1px !important; transition: var(--transition) !important; position: relative !important; }
.oz_head .oz_gnav a::after { content:'' !important; position:absolute !important; bottom:-4px !important; left:50% !important; transform:translateX(-50%) scaleX(0) !important; width:24px !important; height:2px !important; background:var(--pink-primary) !important; transition:transform 0.3s ease !important; border-radius:1px !important; }
.oz_head .oz_gnav a:hover::after { transform:translateX(-50%) scaleX(1) !important; }
.oz_head .oz_gnav a:hover { color: var(--pink-primary) !important; }
.oz_head .oz_gnav .sub { color: var(--text-muted) !important; font-size: 10px !important; }

.is-style-section_ttl, .oz-block-fullWide h2 { text-align:center !important; margin-bottom:40px !important; letter-spacing:3px !important; font-size:28px !important; color:var(--pink-primary) !important; position:relative !important; padding-bottom:20px !important; }
.is-style-section_ttl::after, .oz-block-fullWide h2::after { content:'' !important; display:block !important; width:40px !important; height:3px !important; background:var(--pink-gradient) !important; margin:16px auto 0 !important; border-radius:2px !important; }
.is-style-section_ttl small, .oz-block-fullWide h2 small { display:block !important; font-size:13px !important; color:var(--pink-primary) !important; font-weight:500 !important; letter-spacing:2px !important; margin-top:8px !important; }

.oz-block-fullWide { padding: 80px 20px !important; }
.oz-block-fullWide__inner { max-width: 960px !important; margin: 0 auto !important; }

.oshi-card { background:var(--white); border-radius:var(--radius-md); padding:40px 32px; box-shadow:var(--shadow-card); transition:var(--transition); text-align:center; }
.oshi-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-hover); }
.oshi-card h3 { font-size:18px !important; margin-bottom:16px !important; color:var(--pink-primary) !important; }
.oshi-card p { font-size:14px; line-height:1.8; }

.oshi-btn-primary { display:inline-block; padding:16px 48px; font-size:15px; font-weight:700; text-decoration:none !important; border-radius:var(--radius-full); background:var(--pink-gradient); color:var(--white) !important; box-shadow:0 4px 15px rgba(255,107,157,0.3); transition:var(--transition); letter-spacing:1px; }
.oshi-btn-primary:hover { transform:translateY(-2px); box-shadow:0 6px 20px rgba(255,107,157,0.4); color:var(--white) !important; }
.oshi-btn-secondary { display:inline-block; padding:16px 48px; font-size:15px; font-weight:700; text-decoration:none !important; border-radius:var(--radius-full); border:2px solid var(--pink-primary); color:var(--pink-primary) !important; background:transparent; transition:var(--transition); letter-spacing:1px; }
.oshi-btn-secondary:hover { background:var(--pink-primary); color:var(--white) !important; transform:translateY(-2px); }

.btn-outline-gold, a.btn-outline-gold { display:inline-block !important; padding:14px 40px !important; font-size:14px !important; font-weight:700 !important; text-decoration:none !important; border-radius:var(--radius-full) !important; border:2px solid var(--pink-primary) !important; color:var(--pink-primary) !important; background:transparent !important; transition:var(--transition) !important; letter-spacing:1px !important; }
.btn-outline-gold:hover, a.btn-outline-gold:hover { background:var(--pink-primary) !important; color:var(--white) !important; transform:translateY(-2px) !important; }

.wp-block-table table, table { border-collapse:collapse !important; width:100% !important; border:none !important; border-radius:var(--radius-md) !important; overflow:hidden !important; box-shadow:var(--shadow-soft) !important; }
.wp-block-table thead tr, table thead tr { background:var(--pink-gradient) !important; }
.wp-block-table thead th, table thead th { color:var(--white) !important; font-weight:700 !important; font-size:14px !important; padding:16px 20px !important; border:none !important; letter-spacing:1px !important; text-align:center !important; }
.wp-block-table tbody tr, table tbody tr { border-bottom:1px solid rgba(231,84,128,0.08) !important; transition:var(--transition) !important; }
.wp-block-table tbody tr:nth-child(even), table tbody tr:nth-child(even) { background:rgba(252,228,236,0.3) !important; }
.wp-block-table tbody tr:hover, table tbody tr:hover { background:rgba(252,228,236,0.6) !important; }
.wp-block-table tbody td, table tbody td { padding:16px 20px !important; border:none !important; font-size:15px !important; text-align:center !important; color:var(--text-dark) !important; }

.wp-block-list li { padding:8px 0 !important; padding-left:24px !important; position:relative !important; line-height:1.8 !important; list-style:none !important; }
.wp-block-list li::before { content:'' !important; position:absolute !important; left:0 !important; top:16px !important; width:8px !important; height:8px !important; background:var(--pink-primary) !important; border-radius:50% !important; opacity:0.6 !important; }

.oz_foot { background:linear-gradient(180deg,var(--pink-soft) 0%,#f8e8ee 100%) !important; padding:60px 20px 30px !important; text-align:center !important; }
.oz_foot a { color:var(--text-body) !important; transition:var(--transition) !important; }
.oz_foot a:hover { color:var(--pink-primary) !important; }
.foot_logo { font-size:18px !important; font-weight:700 !important; color:var(--text-dark) !important; }
.oz_foot .foot_navi { display:flex !important; justify-content:center !important; gap:24px !important; flex-wrap:wrap !important; margin-bottom:24px !important; }
.oz_foot .foot_navi a { font-size:13px !important; font-weight:500 !important; letter-spacing:1px !important; }
.oz_foot .oz_copy { font-size:11px !important; color:var(--text-muted) !important; padding-top:24px !important; border-top:1px solid rgba(231,84,128,0.1) !important; }

.oz_spfoot { background:rgba(255,255,255,0.98) !important; backdrop-filter:blur(12px) !important; box-shadow:0 -2px 20px rgba(0,0,0,0.06) !important; border-top:1px solid rgba(231,84,128,0.1) !important; }
.oz_spfoot a { color:var(--pink-primary) !important; font-size:10px !important; font-weight:600 !important; }

.oz_castCard { border-radius:var(--radius-md) !important; overflow:hidden !important; box-shadow:var(--shadow-card) !important; transition:var(--transition) !important; background:var(--white) !important; }
.oz_castCard:hover { transform:translateY(-4px) !important; box-shadow:var(--shadow-hover) !important; }
.oz_castCard .oz_castCard_name { color:var(--text-dark) !important; font-weight:700 !important; }
.oz_castCard .oz_castCard_info { padding:12px 16px !important; background:var(--white) !important; }

.oz_main { background:var(--bg-cream) !important; }
.oz_main .l-article { max-width:960px !important; margin:0 auto !important; padding:60px 20px !important; }

.oz_main h2.wp-block-heading { font-size:28px !important; letter-spacing:3px !important; color:var(--pink-primary) !important; text-align:center !important; margin-bottom:8px !important; }
.oz_main h2.wp-block-heading::after { content:'' !important; display:block !important; width:40px !important; height:3px !important; background:var(--pink-gradient) !important; margin:16px auto 0 !important; border-radius:2px !important; }
.oz_main h3.wp-block-heading { font-size:18px !important; color:var(--text-dark) !important; text-align:center !important; font-weight:500 !important; margin-bottom:32px !important; letter-spacing:1px !important; }
.oz_main h4.wp-block-heading { font-size:17px !important; color:var(--text-dark) !important; font-weight:700 !important; padding:12px 0 12px 20px !important; margin:40px 0 16px !important; border-left:4px solid var(--pink-primary) !important; background:linear-gradient(90deg,rgba(252,228,236,0.4) 0%,transparent 100%) !important; border-radius:0 var(--radius-sm) var(--radius-sm) 0 !important; }

.wp-block-columns { gap:24px !important; margin-top:24px !important; }

@media (max-width:768px) {
  .oz-block-fullWide { padding:50px 16px !important; }
  .is-style-section_ttl, .oz-block-fullWide h2 { font-size:22px !important; letter-spacing:2px !important; }
  .oz_main .l-article { padding:40px 16px !important; }
  .oz_main h2.wp-block-heading { font-size:22px !important; }
  .oz_main h4.wp-block-heading { font-size:15px !important; }
  .wp-block-columns { flex-direction:column !important; }
  .oshi-btn-primary, .oshi-btn-secondary, .btn-outline-gold { padding:14px 32px !important; font-size:14px !important; }
  .wp-block-table tbody td, table tbody td { padding:12px 12px !important; font-size:14px !important; }
}

.elem.fadeup { opacity:0; transform:translateY(30px); transition:opacity 0.8s ease, transform 0.8s ease; }
.elem.fadeup.is-active { opacity:1; transform:translateY(0); }

.oz_head .oz_menu_btn span { background:var(--pink-primary) !important; }


/* ============================================================
   FIX: List text visibility on sub-pages
   ============================================================ */
.oz_main ul li,
.oz_main ol li,
.oz_main .wp-block-list li,
.wp-block-list li,
ul.wp-block-list li,
ol.wp-block-list li,
.l-article ul li,
.l-article ol li {
  color: #444 !important;
  font-size: 15px !important;
}

.oz_main .wp-block-list li strong,
.wp-block-list li strong {
  color: #2d2d2d !important;
}

/* ============================================================
   FIX: Sub-page heading design consistency
   ============================================================ */
/* H2 on sub-pages: centered with gradient underline */
.oz_main h2.wp-block-heading {
  text-align: center !important;
  font-size: 28px !important;
  letter-spacing: 3px !important;
  color: var(--pink-primary) !important;
  border-left: none !important;
  background: none !important;
  padding: 0 !important;
  margin-bottom: 8px !important;
  position: relative !important;
}

.oz_main h2.wp-block-heading::after {
  content: '' !important;
  display: block !important;
  width: 40px !important;
  height: 3px !important;
  background: linear-gradient(135deg, #ff6b9d, #e75480) !important;
  margin: 16px auto 0 !important;
  border-radius: 2px !important;
}

/* H3 on sub-pages: centered subtitle */
.oz_main h3.wp-block-heading {
  text-align: center !important;
  font-size: 16px !important;
  color: #2d2d2d !important;
  font-weight: 500 !important;
  margin-bottom: 32px !important;
  letter-spacing: 1px !important;
  border-left: none !important;
  background: none !important;
  padding: 0 !important;
}

/* H4 on sub-pages: left border accent */
.oz_main h4.wp-block-heading {
  font-size: 17px !important;
  color: #2d2d2d !important;
  font-weight: 700 !important;
  text-align: left !important;
  padding: 12px 0 12px 20px !important;
  margin: 40px 0 16px !important;
  border-left: 4px solid #e75480 !important;
  background: linear-gradient(90deg, rgba(252,228,236,0.4) 0%, transparent 100%) !important;
  border-radius: 0 8px 8px 0 !important;
}

/* ============================================================
   FIX: Table text on sub-pages
   ============================================================ */
.oz_main table td,
.oz_main table th,
.l-article table td,
.l-article table th {
  color: #2d2d2d !important;
}

.oz_main table thead th,
.l-article table thead th {
  color: #fff !important;
}

/* ============================================================
   FIX: Paragraph text on sub-pages
   ============================================================ */
.oz_main p,
.l-article p {
  color: #444 !important;
  line-height: 1.9 !important;
}

.oz_main .has-text-align-center {
  text-align: center !important;
}

/* ============================================================
   FIX: Schedule date text visibility on homepage
   ============================================================ */
.oz_week .oz_date,
.oz_week .oz_date * {
  color: #2d2d2d !important;
}

.oz_TopSec_slide * {
  color: #2d2d2d !important;
}

/* ============================================================
   FIX: Button links on sub-pages
   ============================================================ */
.oz_main .btn-outline-gold,
.oz_main a.btn-outline-gold,
.l-article .btn-outline-gold,
.l-article a.btn-outline-gold {
  display: inline-block !important;
  padding: 14px 40px !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  text-decoration: none !important;
  border-radius: 50px !important;
  border: 2px solid #e75480 !important;
  color: #e75480 !important;
  background: transparent !important;
  transition: all 0.3s ease !important;
  letter-spacing: 1px !important;
}

.oz_main .btn-outline-gold:hover,
.oz_main a.btn-outline-gold:hover,
.l-article .btn-outline-gold:hover,
.l-article a.btn-outline-gold:hover {
  background: #e75480 !important;
  color: #fff !important;
}

/* ============================================================
   Responsive fixes for sub-pages
   ============================================================ */
@media (max-width: 768px) {
  .oz_main h2.wp-block-heading { font-size: 22px !important; letter-spacing: 2px !important; }
  .oz_main h4.wp-block-heading { font-size: 15px !important; }
  .oz_main .l-article { padding: 40px 16px !important; }
}
