/*
Theme Name: School Stride
Theme URI:
Description: 地下アイドルグループ「スクールストライド」公式サイト用テーマ。メンバー・ライブ・NEWSをカスタム投稿で管理できる、ポップ/カラフルな1ページ型サイト。
Author:
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 7.4
Text Domain: school-stride
*/

:root{
  --pink:#ff7eb3; --pink-soft:#ffd9e8;
  --blue:#5bb8f0; --blue-soft:#d4ecff;
  --gold:#e7c468;
  --ink:#3a4a63; --bg:#ffffff;
  --grad:linear-gradient(135deg,var(--pink),var(--blue));
  --radius:22px; --shadow:0 10px 28px rgba(91,184,240,.18);
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);
  font-family:"Hiragino Maru Gothic ProN","Hiragino Kaku Gothic ProN","Noto Sans JP",system-ui,sans-serif;
  line-height:1.7;}
img{max-width:100%;display:block}
a{color:inherit}
.wrap{max-width:1040px;margin:0 auto;padding:0 20px}
section{padding:64px 0}
h2.title{font-size:1.9rem;font-weight:900;letter-spacing:.06em;margin:0 0 30px;text-align:center}
h2.title span{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
h2.title small{display:block;font-size:.75rem;letter-spacing:.34em;color:var(--blue);margin-top:6px;font-weight:700}

/* nav */
header.nav{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.92);
  backdrop-filter:blur(8px);border-bottom:2px solid var(--pink-soft)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:60px}
.logo{font-weight:900;font-size:1.15rem;letter-spacing:.04em;text-decoration:none;
  background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.nav nav{display:flex;gap:18px;font-weight:800;font-size:.9rem}
.nav nav a{text-decoration:none;color:var(--ink)}
.nav nav a:hover{color:var(--pink)}

/* hero */
.hero{position:relative;text-align:center;padding:0;overflow:hidden;
  background:linear-gradient(135deg,var(--pink-soft),var(--blue-soft))}
.hero-logo{width:100%;max-width:none;margin:0;display:block}
.hero-fallback{font-size:3rem;font-weight:900;margin:0;padding:60px 20px;color:#fff;text-shadow:0 4px 14px rgba(0,0,0,.25)}

/* news */
.news{display:flex;flex-direction:column;gap:12px;max-width:760px;margin:0 auto}
.news a{display:flex;gap:16px;align-items:center;text-decoration:none;color:var(--ink);background:#fff;
  border-radius:16px;padding:14px 18px;box-shadow:var(--shadow);transition:transform .15s}
.news a:hover{transform:translateX(4px)}
.news .date{font-weight:800;color:var(--blue);font-size:.85rem;white-space:nowrap}
.news .tag{font-size:.7rem;font-weight:800;color:#fff;background:var(--pink);padding:3px 10px;border-radius:999px;white-space:nowrap}
.news .more{text-align:center;margin-top:22px}
.news .more a{display:inline-block;font-weight:800;color:var(--blue);text-decoration:none}

/* schedule */
.schedule{display:flex;flex-direction:column;gap:16px;max-width:820px;margin:0 auto}
.live{display:grid;grid-template-columns:96px 1fr auto;gap:18px;align-items:center;
  background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 22px;
  border-left:8px solid var(--blue);transition:transform .15s}
.live:hover{transform:translateX(4px)}
.live .d{text-align:center;font-weight:900;line-height:1.15;
  background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.live .d .day{font-size:1.5rem}
.live .d .w{font-size:.78rem}
.live .ttl{font-weight:800;font-size:1.08rem;margin:0 0 4px}
.live .meta{font-size:.9rem;opacity:.85}
.live .meta .pin{color:var(--pink);font-weight:700}
.ticket{white-space:nowrap;text-decoration:none;font-weight:800;color:#fff;background:var(--grad);
  padding:11px 20px;border-radius:999px;box-shadow:0 6px 16px rgba(91,184,240,.4);transition:transform .15s}
.ticket:hover{transform:scale(1.05)}
.noevent{text-align:center;font-weight:700;padding:28px;background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);max-width:820px;margin:0 auto}

/* member */
.members{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:22px}
.card{--c:var(--pink);--pos:0%;display:block;text-decoration:none;color:var(--ink);background:#fff;
  border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);
  border:3px solid transparent;transition:.18s}
.card:hover{transform:translateY(-6px) rotate(-.4deg);border-color:var(--c);box-shadow:0 16px 36px rgba(0,0,0,.15)}
.card .ph{aspect-ratio:3/4;background-color:var(--c);background-repeat:no-repeat}
.card .ph.group{background-size:500% auto;background-position:var(--pos) 18%}
.card .ph.thumb{background-size:cover;background-position:center 18%}
.card .nm{font-weight:900;font-size:1.1rem;text-align:center;padding:14px 10px 4px}
.card .nm .kana{display:block;font-size:.7rem;color:var(--blue);letter-spacing:.1em}
.card .nm::after{content:"";display:block;width:40px;height:4px;border-radius:4px;background:var(--c);margin:9px auto 0}
.card .ct{text-align:center;font-size:.82rem;opacity:.78;padding:6px 12px 8px}
.card .minfo{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;
  padding:0 12px 18px;font-size:.76rem;color:#5a6b82}
.card .mbti{font-weight:800;color:#fff;background:var(--c);padding:2px 9px;border-radius:999px;
  font-size:.72rem;letter-spacing:.05em}

/* about */
.about{max-width:720px;margin:0 auto;text-align:center;font-size:1.02rem}
.about .lead{font-size:0}
.about .lead span{font-size:1.02rem;line-height:1.9;display:inline-block}
.about .lead strong{font-size:1.02rem}

/* footer */
footer.site-footer{background:var(--ink);color:#fff;text-align:center;padding:48px 20px}
footer.site-footer .flogo{font-weight:900;font-size:1.4rem;letter-spacing:.06em}
footer.site-footer .sns{display:flex;gap:14px;justify-content:center;margin:18px 0}
footer.site-footer .sns a{text-decoration:none;font-weight:800;font-size:.9rem;color:var(--ink);background:#fff;
  padding:9px 18px;border-radius:999px;transition:transform .15s}
footer.site-footer .sns a:hover{transform:translateY(-2px)}
footer.site-footer small{opacity:.6}

/* member single */
.member-single{--c:var(--pink);display:grid;grid-template-columns:minmax(0,320px) 1fr;gap:28px;
  max-width:900px;margin:48px auto;padding:0 20px;align-items:start}
.member-single .photo{border-radius:18px;overflow:hidden;aspect-ratio:3/4;background-color:var(--c);
  background-repeat:no-repeat;border-top:8px solid var(--c)}
.member-single .photo.group{background-size:500% auto;background-position:var(--pos) 18%}
.member-single .photo.thumb{background-size:cover;background-position:center 18%}
.member-single h1{font-size:2rem;font-weight:900;margin:0 0 2px}
.member-single .kana{color:var(--blue);font-size:.85rem;letter-spacing:.1em}
.member-single .catch{display:inline-block;font-weight:700;color:#fff;background:var(--c);
  padding:5px 14px;border-radius:999px;margin:12px 0}
.member-single ul.facts{list-style:none;margin:0 0 16px;padding:0}
.member-single ul.facts li{display:flex;gap:12px;padding:9px 0;border-bottom:1px dashed #e7ddf0}
.member-single ul.facts .label{flex:0 0 92px;font-weight:700;color:var(--c)}
.member-single .sns{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}
.member-single .sns a{text-decoration:none;font-weight:700;font-size:.9rem;color:#fff;background:var(--c);
  padding:8px 16px;border-radius:999px}

/* generic content (news single / archive) */
.site-main{max-width:760px;margin:48px auto;padding:0 20px}
.site-main h1.entry-title{font-size:1.7rem;font-weight:900;margin:0 0 6px}
.site-main .entry-meta{color:var(--blue);font-weight:700;font-size:.85rem;margin-bottom:24px}
.site-main .entry-content p{margin:1em 0}
.site-main .post-list{display:flex;flex-direction:column;gap:12px}
.site-main .post-list a{display:flex;gap:16px;align-items:center;text-decoration:none;background:#fff;
  border-radius:16px;padding:14px 18px;box-shadow:var(--shadow)}
.site-main .post-list .date{font-weight:800;color:var(--blue);font-size:.85rem;white-space:nowrap}
.back-home{display:inline-block;margin-top:28px;font-weight:800;color:var(--blue);text-decoration:none}

@media(max-width:640px){
  .nav nav{display:none}
  .hero-fallback{font-size:2.1rem}
  .live{grid-template-columns:78px 1fr}
  .ticket{grid-column:1/-1;text-align:center}
  .member-single{grid-template-columns:1fr}
}
